@mokup/server 1.1.2 → 1.1.4

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 (73) hide show
  1. package/dist/connect.cjs +5 -5
  2. package/dist/connect.d.cts +13 -2
  3. package/dist/connect.d.mts +13 -2
  4. package/dist/connect.d.ts +13 -2
  5. package/dist/connect.mjs +1 -1
  6. package/dist/express.cjs +1 -1
  7. package/dist/express.d.cts +13 -2
  8. package/dist/express.d.mts +13 -2
  9. package/dist/express.d.ts +13 -2
  10. package/dist/express.mjs +1 -1
  11. package/dist/fastify.cjs +5 -5
  12. package/dist/fastify.d.cts +13 -2
  13. package/dist/fastify.d.mts +13 -2
  14. package/dist/fastify.d.ts +13 -2
  15. package/dist/fastify.mjs +1 -1
  16. package/dist/fetch-server.cjs +599 -447
  17. package/dist/fetch-server.d.cts +81 -27
  18. package/dist/fetch-server.d.mts +81 -27
  19. package/dist/fetch-server.d.ts +81 -27
  20. package/dist/fetch-server.mjs +601 -449
  21. package/dist/fetch.cjs +5 -5
  22. package/dist/fetch.d.cts +12 -1
  23. package/dist/fetch.d.mts +12 -1
  24. package/dist/fetch.d.ts +12 -1
  25. package/dist/fetch.mjs +1 -1
  26. package/dist/hono.cjs +1 -1
  27. package/dist/hono.d.cts +12 -1
  28. package/dist/hono.d.mts +12 -1
  29. package/dist/hono.d.ts +12 -1
  30. package/dist/hono.mjs +1 -1
  31. package/dist/index.cjs +34 -2
  32. package/dist/index.d.cts +40 -1
  33. package/dist/index.d.mts +40 -1
  34. package/dist/index.d.ts +40 -1
  35. package/dist/index.mjs +36 -1
  36. package/dist/koa.cjs +5 -5
  37. package/dist/koa.d.cts +13 -2
  38. package/dist/koa.d.mts +13 -2
  39. package/dist/koa.d.ts +13 -2
  40. package/dist/koa.mjs +1 -1
  41. package/dist/node.cjs +3 -3
  42. package/dist/node.d.cts +3 -2
  43. package/dist/node.d.mts +3 -2
  44. package/dist/node.d.ts +3 -2
  45. package/dist/node.mjs +3 -3
  46. package/dist/shared/server.CyVIKPsp.d.cts +214 -0
  47. package/dist/shared/server.CyVIKPsp.d.mts +214 -0
  48. package/dist/shared/server.CyVIKPsp.d.ts +214 -0
  49. package/dist/shared/server.D0gAciOr.d.cts +46 -0
  50. package/dist/shared/server.D0gAciOr.d.mts +46 -0
  51. package/dist/shared/server.D0gAciOr.d.ts +46 -0
  52. package/dist/shared/server.DkerfsA-.d.cts +73 -0
  53. package/dist/shared/server.DkerfsA-.d.mts +73 -0
  54. package/dist/shared/server.DkerfsA-.d.ts +73 -0
  55. package/dist/shared/{server.tZ4R8aB2.mjs → server.LbftO9Jh.mjs} +57 -54
  56. package/dist/shared/{server.3GcmR3Ev.cjs → server.aaygIV2Q.cjs} +57 -54
  57. package/dist/worker-node.cjs +1 -1
  58. package/dist/worker-node.d.cts +29 -1
  59. package/dist/worker-node.d.mts +29 -1
  60. package/dist/worker-node.d.ts +29 -1
  61. package/dist/worker-node.mjs +1 -1
  62. package/dist/worker.cjs +1 -1
  63. package/dist/worker.d.cts +23 -1
  64. package/dist/worker.d.mts +23 -1
  65. package/dist/worker.d.ts +23 -1
  66. package/dist/worker.mjs +1 -1
  67. package/package.json +4 -4
  68. package/dist/shared/server.B82hrXoo.d.cts +0 -15
  69. package/dist/shared/server.B82hrXoo.d.mts +0 -15
  70. package/dist/shared/server.B82hrXoo.d.ts +0 -15
  71. package/dist/shared/server.Cb2eiCU2.d.cts +0 -17
  72. package/dist/shared/server.Cb2eiCU2.d.mts +0 -17
  73. package/dist/shared/server.Cb2eiCU2.d.ts +0 -17
@@ -1,53 +1,107 @@
1
- import { RouteToken } from '@mokup/runtime';
2
- import { Context, MiddlewareHandler } from '@mokup/shared/hono';
1
+ import { d as RouteTable } from './shared/server.CyVIKPsp.cjs';
3
2
  import { MockEntryOptions, PlaygroundOptionsInput } from '@mokup/shared';
3
+ import '@mokup/runtime';
4
+ import '@mokup/shared/hono';
4
5
 
6
+ /**
7
+ * Options for a fetch-based mokup server.
8
+ *
9
+ * @example
10
+ * import type { FetchServerOptions } from '@mokup/server'
11
+ *
12
+ * const options: FetchServerOptions = { dir: 'mock', prefix: '/api' }
13
+ */
5
14
  interface FetchServerOptions extends MockEntryOptions {
15
+ /**
16
+ * Hostname to bind when used by a CLI or adapter.
17
+ *
18
+ * @default undefined
19
+ */
6
20
  host?: string;
21
+ /**
22
+ * Port to bind when used by a CLI or adapter.
23
+ *
24
+ * @default undefined
25
+ */
7
26
  port?: number;
27
+ /**
28
+ * Root directory used to resolve paths.
29
+ *
30
+ * @default process.cwd()
31
+ */
8
32
  root?: string;
9
33
  }
34
+ /**
35
+ * Top-level fetch server configuration.
36
+ *
37
+ * @example
38
+ * import type { FetchServerOptionsConfig } from '@mokup/server'
39
+ *
40
+ * const config: FetchServerOptionsConfig = {
41
+ * entries: { dir: 'mock' },
42
+ * playground: true,
43
+ * }
44
+ */
10
45
  interface FetchServerOptionsConfig {
46
+ /**
47
+ * Entry or entries to scan.
48
+ *
49
+ * @default [{ }]
50
+ */
11
51
  entries?: FetchServerOptions | FetchServerOptions[];
52
+ /**
53
+ * Playground configuration.
54
+ *
55
+ * @default { enabled: true, path: "/__mokup" }
56
+ */
12
57
  playground?: PlaygroundOptionsInput;
13
58
  }
59
+ /**
60
+ * Alias for fetch server options input.
61
+ *
62
+ * @example
63
+ * import type { FetchServerOptionsInput } from '@mokup/server'
64
+ */
14
65
  type FetchServerOptionsInput = FetchServerOptionsConfig;
15
66
 
16
- type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
17
- type RouteStaticResponse = string | number | boolean | bigint | symbol | null | undefined | object;
18
- type RouteHandlerResult = RouteStaticResponse | Response;
19
- type RequestHandler = (context: Context) => RouteHandlerResult | Promise<RouteHandlerResult>;
20
- type RouteResponse = RouteStaticResponse | RequestHandler;
21
- interface ResolvedMiddleware {
22
- handle: MiddlewareHandler;
23
- source: string;
24
- index: number;
25
- }
26
- interface ResolvedRoute {
27
- file: string;
28
- template: string;
29
- method: HttpMethod;
30
- tokens: RouteToken[];
31
- score: number[];
32
- handler: RouteResponse;
33
- middlewares?: ResolvedMiddleware[];
34
- status?: number;
35
- headers?: Record<string, string>;
36
- delay?: number;
37
- ruleIndex?: number;
38
- }
39
- type RouteTable = ResolvedRoute[];
40
-
67
+ /**
68
+ * Fetch server instance returned by createFetchServer.
69
+ *
70
+ * @example
71
+ * import type { FetchServer } from '@mokup/server'
72
+ *
73
+ * const server: FetchServer = {
74
+ * fetch: async () => new Response('ok'),
75
+ * refresh: async () => {},
76
+ * getRoutes: () => [],
77
+ * }
78
+ */
41
79
  interface FetchServer {
80
+ /** Fetch handler for runtime requests. */
42
81
  fetch: (request: Request) => Promise<Response>;
82
+ /** Refresh the route table. */
43
83
  refresh: () => Promise<void>;
84
+ /** Read the current route table. */
44
85
  getRoutes: () => RouteTable;
86
+ /** Inject a WebSocket server for playground metrics. */
45
87
  injectWebSocket?: (server: NodeWebSocketServer) => void;
88
+ /** Close any active watchers. */
46
89
  close?: () => Promise<void>;
47
90
  }
48
91
  interface NodeWebSocketServer {
49
92
  on: (event: string, listener: (...args: unknown[]) => void) => void;
50
93
  }
94
+ /**
95
+ * Create a fetch server that scans routes and serves playground metadata.
96
+ *
97
+ * @param options - Server options input.
98
+ * @returns Fetch server instance.
99
+ *
100
+ * @example
101
+ * import { createFetchServer } from '@mokup/server'
102
+ *
103
+ * const server = await createFetchServer({ entries: { dir: 'mock' } })
104
+ */
51
105
  declare function createFetchServer(options?: FetchServerOptionsInput): Promise<FetchServer>;
52
106
 
53
107
  export { createFetchServer };
@@ -1,53 +1,107 @@
1
- import { RouteToken } from '@mokup/runtime';
2
- import { Context, MiddlewareHandler } from '@mokup/shared/hono';
1
+ import { d as RouteTable } from './shared/server.CyVIKPsp.mjs';
3
2
  import { MockEntryOptions, PlaygroundOptionsInput } from '@mokup/shared';
3
+ import '@mokup/runtime';
4
+ import '@mokup/shared/hono';
4
5
 
6
+ /**
7
+ * Options for a fetch-based mokup server.
8
+ *
9
+ * @example
10
+ * import type { FetchServerOptions } from '@mokup/server'
11
+ *
12
+ * const options: FetchServerOptions = { dir: 'mock', prefix: '/api' }
13
+ */
5
14
  interface FetchServerOptions extends MockEntryOptions {
15
+ /**
16
+ * Hostname to bind when used by a CLI or adapter.
17
+ *
18
+ * @default undefined
19
+ */
6
20
  host?: string;
21
+ /**
22
+ * Port to bind when used by a CLI or adapter.
23
+ *
24
+ * @default undefined
25
+ */
7
26
  port?: number;
27
+ /**
28
+ * Root directory used to resolve paths.
29
+ *
30
+ * @default process.cwd()
31
+ */
8
32
  root?: string;
9
33
  }
34
+ /**
35
+ * Top-level fetch server configuration.
36
+ *
37
+ * @example
38
+ * import type { FetchServerOptionsConfig } from '@mokup/server'
39
+ *
40
+ * const config: FetchServerOptionsConfig = {
41
+ * entries: { dir: 'mock' },
42
+ * playground: true,
43
+ * }
44
+ */
10
45
  interface FetchServerOptionsConfig {
46
+ /**
47
+ * Entry or entries to scan.
48
+ *
49
+ * @default [{ }]
50
+ */
11
51
  entries?: FetchServerOptions | FetchServerOptions[];
52
+ /**
53
+ * Playground configuration.
54
+ *
55
+ * @default { enabled: true, path: "/__mokup" }
56
+ */
12
57
  playground?: PlaygroundOptionsInput;
13
58
  }
59
+ /**
60
+ * Alias for fetch server options input.
61
+ *
62
+ * @example
63
+ * import type { FetchServerOptionsInput } from '@mokup/server'
64
+ */
14
65
  type FetchServerOptionsInput = FetchServerOptionsConfig;
15
66
 
16
- type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
17
- type RouteStaticResponse = string | number | boolean | bigint | symbol | null | undefined | object;
18
- type RouteHandlerResult = RouteStaticResponse | Response;
19
- type RequestHandler = (context: Context) => RouteHandlerResult | Promise<RouteHandlerResult>;
20
- type RouteResponse = RouteStaticResponse | RequestHandler;
21
- interface ResolvedMiddleware {
22
- handle: MiddlewareHandler;
23
- source: string;
24
- index: number;
25
- }
26
- interface ResolvedRoute {
27
- file: string;
28
- template: string;
29
- method: HttpMethod;
30
- tokens: RouteToken[];
31
- score: number[];
32
- handler: RouteResponse;
33
- middlewares?: ResolvedMiddleware[];
34
- status?: number;
35
- headers?: Record<string, string>;
36
- delay?: number;
37
- ruleIndex?: number;
38
- }
39
- type RouteTable = ResolvedRoute[];
40
-
67
+ /**
68
+ * Fetch server instance returned by createFetchServer.
69
+ *
70
+ * @example
71
+ * import type { FetchServer } from '@mokup/server'
72
+ *
73
+ * const server: FetchServer = {
74
+ * fetch: async () => new Response('ok'),
75
+ * refresh: async () => {},
76
+ * getRoutes: () => [],
77
+ * }
78
+ */
41
79
  interface FetchServer {
80
+ /** Fetch handler for runtime requests. */
42
81
  fetch: (request: Request) => Promise<Response>;
82
+ /** Refresh the route table. */
43
83
  refresh: () => Promise<void>;
84
+ /** Read the current route table. */
44
85
  getRoutes: () => RouteTable;
86
+ /** Inject a WebSocket server for playground metrics. */
45
87
  injectWebSocket?: (server: NodeWebSocketServer) => void;
88
+ /** Close any active watchers. */
46
89
  close?: () => Promise<void>;
47
90
  }
48
91
  interface NodeWebSocketServer {
49
92
  on: (event: string, listener: (...args: unknown[]) => void) => void;
50
93
  }
94
+ /**
95
+ * Create a fetch server that scans routes and serves playground metadata.
96
+ *
97
+ * @param options - Server options input.
98
+ * @returns Fetch server instance.
99
+ *
100
+ * @example
101
+ * import { createFetchServer } from '@mokup/server'
102
+ *
103
+ * const server = await createFetchServer({ entries: { dir: 'mock' } })
104
+ */
51
105
  declare function createFetchServer(options?: FetchServerOptionsInput): Promise<FetchServer>;
52
106
 
53
107
  export { createFetchServer };
@@ -1,53 +1,107 @@
1
- import { RouteToken } from '@mokup/runtime';
2
- import { Context, MiddlewareHandler } from '@mokup/shared/hono';
1
+ import { d as RouteTable } from './shared/server.CyVIKPsp.js';
3
2
  import { MockEntryOptions, PlaygroundOptionsInput } from '@mokup/shared';
3
+ import '@mokup/runtime';
4
+ import '@mokup/shared/hono';
4
5
 
6
+ /**
7
+ * Options for a fetch-based mokup server.
8
+ *
9
+ * @example
10
+ * import type { FetchServerOptions } from '@mokup/server'
11
+ *
12
+ * const options: FetchServerOptions = { dir: 'mock', prefix: '/api' }
13
+ */
5
14
  interface FetchServerOptions extends MockEntryOptions {
15
+ /**
16
+ * Hostname to bind when used by a CLI or adapter.
17
+ *
18
+ * @default undefined
19
+ */
6
20
  host?: string;
21
+ /**
22
+ * Port to bind when used by a CLI or adapter.
23
+ *
24
+ * @default undefined
25
+ */
7
26
  port?: number;
27
+ /**
28
+ * Root directory used to resolve paths.
29
+ *
30
+ * @default process.cwd()
31
+ */
8
32
  root?: string;
9
33
  }
34
+ /**
35
+ * Top-level fetch server configuration.
36
+ *
37
+ * @example
38
+ * import type { FetchServerOptionsConfig } from '@mokup/server'
39
+ *
40
+ * const config: FetchServerOptionsConfig = {
41
+ * entries: { dir: 'mock' },
42
+ * playground: true,
43
+ * }
44
+ */
10
45
  interface FetchServerOptionsConfig {
46
+ /**
47
+ * Entry or entries to scan.
48
+ *
49
+ * @default [{ }]
50
+ */
11
51
  entries?: FetchServerOptions | FetchServerOptions[];
52
+ /**
53
+ * Playground configuration.
54
+ *
55
+ * @default { enabled: true, path: "/__mokup" }
56
+ */
12
57
  playground?: PlaygroundOptionsInput;
13
58
  }
59
+ /**
60
+ * Alias for fetch server options input.
61
+ *
62
+ * @example
63
+ * import type { FetchServerOptionsInput } from '@mokup/server'
64
+ */
14
65
  type FetchServerOptionsInput = FetchServerOptionsConfig;
15
66
 
16
- type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
17
- type RouteStaticResponse = string | number | boolean | bigint | symbol | null | undefined | object;
18
- type RouteHandlerResult = RouteStaticResponse | Response;
19
- type RequestHandler = (context: Context) => RouteHandlerResult | Promise<RouteHandlerResult>;
20
- type RouteResponse = RouteStaticResponse | RequestHandler;
21
- interface ResolvedMiddleware {
22
- handle: MiddlewareHandler;
23
- source: string;
24
- index: number;
25
- }
26
- interface ResolvedRoute {
27
- file: string;
28
- template: string;
29
- method: HttpMethod;
30
- tokens: RouteToken[];
31
- score: number[];
32
- handler: RouteResponse;
33
- middlewares?: ResolvedMiddleware[];
34
- status?: number;
35
- headers?: Record<string, string>;
36
- delay?: number;
37
- ruleIndex?: number;
38
- }
39
- type RouteTable = ResolvedRoute[];
40
-
67
+ /**
68
+ * Fetch server instance returned by createFetchServer.
69
+ *
70
+ * @example
71
+ * import type { FetchServer } from '@mokup/server'
72
+ *
73
+ * const server: FetchServer = {
74
+ * fetch: async () => new Response('ok'),
75
+ * refresh: async () => {},
76
+ * getRoutes: () => [],
77
+ * }
78
+ */
41
79
  interface FetchServer {
80
+ /** Fetch handler for runtime requests. */
42
81
  fetch: (request: Request) => Promise<Response>;
82
+ /** Refresh the route table. */
43
83
  refresh: () => Promise<void>;
84
+ /** Read the current route table. */
44
85
  getRoutes: () => RouteTable;
86
+ /** Inject a WebSocket server for playground metrics. */
45
87
  injectWebSocket?: (server: NodeWebSocketServer) => void;
88
+ /** Close any active watchers. */
46
89
  close?: () => Promise<void>;
47
90
  }
48
91
  interface NodeWebSocketServer {
49
92
  on: (event: string, listener: (...args: unknown[]) => void) => void;
50
93
  }
94
+ /**
95
+ * Create a fetch server that scans routes and serves playground metadata.
96
+ *
97
+ * @param options - Server options input.
98
+ * @returns Fetch server instance.
99
+ *
100
+ * @example
101
+ * import { createFetchServer } from '@mokup/server'
102
+ *
103
+ * const server = await createFetchServer({ entries: { dir: 'mock' } })
104
+ */
51
105
  declare function createFetchServer(options?: FetchServerOptionsInput): Promise<FetchServer>;
52
106
 
53
107
  export { createFetchServer };