vafast 0.3.1 → 0.3.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 (136) hide show
  1. package/dist/auth/token.d.ts +13 -11
  2. package/dist/auth/token.js +118 -111
  3. package/dist/auth/token.js.map +1 -0
  4. package/dist/defineRoute.d.ts +5 -2
  5. package/dist/defineRoute.js +7 -2
  6. package/dist/defineRoute.js.map +1 -0
  7. package/dist/index.d.ts +30 -14
  8. package/dist/index.js +2247 -15
  9. package/dist/index.js.map +1 -0
  10. package/dist/middleware/auth.d.ts +8 -6
  11. package/dist/middleware/auth.js +198 -99
  12. package/dist/middleware/auth.js.map +1 -0
  13. package/dist/middleware/authMiddleware.d.ts +5 -2
  14. package/dist/middleware/authMiddleware.js +55 -11
  15. package/dist/middleware/authMiddleware.js.map +1 -0
  16. package/dist/middleware/component-renderer.d.ts +4 -2
  17. package/dist/middleware/component-renderer.js +87 -80
  18. package/dist/middleware/component-renderer.js.map +1 -0
  19. package/dist/middleware/component-router.d.ts +8 -3
  20. package/dist/middleware/component-router.js +33 -39
  21. package/dist/middleware/component-router.js.map +1 -0
  22. package/dist/middleware/cors.d.ts +6 -3
  23. package/dist/middleware/cors.js +42 -29
  24. package/dist/middleware/cors.js.map +1 -0
  25. package/dist/middleware/rateLimit.d.ts +5 -3
  26. package/dist/middleware/rateLimit.js +45 -29
  27. package/dist/middleware/rateLimit.js.map +1 -0
  28. package/dist/middleware.d.ts +6 -3
  29. package/dist/middleware.js +97 -51
  30. package/dist/middleware.js.map +1 -0
  31. package/dist/monitoring/index.d.ts +11 -4
  32. package/dist/monitoring/index.js +1299 -17
  33. package/dist/monitoring/index.js.map +1 -0
  34. package/dist/monitoring/native-monitor.d.ts +12 -6
  35. package/dist/monitoring/native-monitor.js +1258 -161
  36. package/dist/monitoring/native-monitor.js.map +1 -0
  37. package/dist/monitoring/types.d.ts +8 -6
  38. package/dist/monitoring/types.js +1 -1
  39. package/dist/monitoring/types.js.map +1 -0
  40. package/dist/node-server/index.d.ts +4 -22
  41. package/dist/node-server/index.js +254 -21
  42. package/dist/node-server/index.js.map +1 -0
  43. package/dist/node-server/request.d.ts +6 -2
  44. package/dist/node-server/request.js +102 -134
  45. package/dist/node-server/request.js.map +1 -0
  46. package/dist/node-server/response.d.ts +7 -3
  47. package/dist/node-server/response.js +67 -89
  48. package/dist/node-server/response.js.map +1 -0
  49. package/dist/node-server/serve.d.ts +11 -7
  50. package/dist/node-server/serve.js +231 -82
  51. package/dist/node-server/serve.js.map +1 -0
  52. package/dist/router/index.d.ts +3 -5
  53. package/dist/router/index.js +228 -7
  54. package/dist/router/index.js.map +1 -0
  55. package/dist/router/radix-tree.d.ts +7 -4
  56. package/dist/router/radix-tree.js +186 -218
  57. package/dist/router/radix-tree.js.map +1 -0
  58. package/dist/router.d.ts +7 -3
  59. package/dist/router.js +37 -83
  60. package/dist/router.js.map +1 -0
  61. package/dist/serve.d.ts +2 -12
  62. package/dist/serve.js +237 -11
  63. package/dist/serve.js.map +1 -0
  64. package/dist/server/base-server.d.ts +5 -2
  65. package/dist/server/base-server.js +124 -135
  66. package/dist/server/base-server.js.map +1 -0
  67. package/dist/server/component-server.d.ts +9 -4
  68. package/dist/server/component-server.js +481 -139
  69. package/dist/server/component-server.js.map +1 -0
  70. package/dist/server/index.d.ts +8 -7
  71. package/dist/server/index.js +985 -11
  72. package/dist/server/index.js.map +1 -0
  73. package/dist/server/server-factory.d.ts +11 -5
  74. package/dist/server/server-factory.js +979 -67
  75. package/dist/server/server-factory.js.map +1 -0
  76. package/dist/server/server.d.ts +7 -3
  77. package/dist/server/server.js +553 -112
  78. package/dist/server/server.js.map +1 -0
  79. package/dist/types/component-route.d.ts +8 -4
  80. package/dist/types/component-route.js +1 -1
  81. package/dist/types/component-route.js.map +1 -0
  82. package/dist/types/index.d.ts +5 -5
  83. package/dist/types/index.js +21 -4
  84. package/dist/types/index.js.map +1 -0
  85. package/dist/types/route.d.ts +13 -10
  86. package/dist/types/route.js +10 -9
  87. package/dist/types/route.js.map +1 -0
  88. package/dist/types/schema.d.ts +11 -7
  89. package/dist/types/schema.js +1 -1
  90. package/dist/types/schema.js.map +1 -0
  91. package/dist/types/types.d.ts +11 -9
  92. package/dist/types/types.js +1 -1
  93. package/dist/types/types.js.map +1 -0
  94. package/dist/utils/base64url.d.ts +4 -2
  95. package/dist/utils/base64url.js +12 -9
  96. package/dist/utils/base64url.js.map +1 -0
  97. package/dist/utils/create-handler.d.ts +11 -7
  98. package/dist/utils/create-handler.js +393 -217
  99. package/dist/utils/create-handler.js.map +1 -0
  100. package/dist/utils/dependency-manager.d.ts +3 -1
  101. package/dist/utils/dependency-manager.js +67 -69
  102. package/dist/utils/dependency-manager.js.map +1 -0
  103. package/dist/utils/go-await.d.ts +3 -1
  104. package/dist/utils/go-await.js +8 -22
  105. package/dist/utils/go-await.js.map +1 -0
  106. package/dist/utils/handle.d.ts +6 -4
  107. package/dist/utils/handle.js +44 -25
  108. package/dist/utils/handle.js.map +1 -0
  109. package/dist/utils/html-renderer.d.ts +3 -1
  110. package/dist/utils/html-renderer.js +25 -24
  111. package/dist/utils/html-renderer.js.map +1 -0
  112. package/dist/utils/index.d.ts +13 -13
  113. package/dist/utils/index.js +832 -21
  114. package/dist/utils/index.js.map +1 -0
  115. package/dist/utils/parsers.d.ts +15 -13
  116. package/dist/utils/parsers.js +138 -188
  117. package/dist/utils/parsers.js.map +1 -0
  118. package/dist/utils/path-matcher.d.ts +3 -1
  119. package/dist/utils/path-matcher.js +68 -78
  120. package/dist/utils/path-matcher.js.map +1 -0
  121. package/dist/utils/request-validator.d.ts +13 -10
  122. package/dist/utils/request-validator.js +234 -84
  123. package/dist/utils/request-validator.js.map +1 -0
  124. package/dist/utils/response.d.ts +9 -7
  125. package/dist/utils/response.js +93 -102
  126. package/dist/utils/response.js.map +1 -0
  127. package/dist/utils/validators/schema-validator.d.ts +13 -9
  128. package/dist/utils/validators/schema-validator.js +228 -209
  129. package/dist/utils/validators/schema-validator.js.map +1 -0
  130. package/dist/utils/validators/schema-validators-ultra.d.ts +15 -12
  131. package/dist/utils/validators/schema-validators-ultra.js +233 -256
  132. package/dist/utils/validators/schema-validators-ultra.js.map +1 -0
  133. package/dist/utils/validators/validators.d.ts +15 -12
  134. package/dist/utils/validators/validators.js +81 -122
  135. package/dist/utils/validators/validators.js.map +1 -0
  136. package/package.json +5 -4
@@ -1,111 +1,102 @@
1
- // src/response.ts
2
- /** 生成 JSON 响应 */
3
- export function json(data, status = 200, headers = {}) {
4
- const body = JSON.stringify(data);
5
- // 优化:只在有自定义 headers 时才创建 Headers 对象
6
- if (Object.keys(headers).length === 0) {
7
- return new Response(body, {
8
- status,
9
- headers: { "Content-Type": "application/json" },
10
- });
11
- }
12
- // 有自定义 headers 时才创建 Headers 对象
13
- const h = new Headers({
14
- "Content-Type": "application/json",
15
- ...headers,
16
- });
1
+ // src/utils/response.ts
2
+ function json(data, status = 200, headers = {}) {
3
+ const body = JSON.stringify(data);
4
+ if (Object.keys(headers).length === 0) {
17
5
  return new Response(body, {
18
- status,
19
- headers: h,
6
+ status,
7
+ headers: { "Content-Type": "application/json" }
20
8
  });
9
+ }
10
+ const h = new Headers({
11
+ "Content-Type": "application/json",
12
+ ...headers
13
+ });
14
+ return new Response(body, {
15
+ status,
16
+ headers: h
17
+ });
21
18
  }
22
- // JSON 响应的预创建 headers(避免每次创建)
23
- const JSON_HEADERS = { "Content-Type": "application/json" };
24
- const TEXT_HEADERS = { "Content-Type": "text/plain" };
25
- /**
26
- * 类型特化的响应映射
27
- * 根据返回值类型直接生成 Response,避免不必要的检查
28
- */
29
- export function mapResponse(response) {
30
- // 快速路径:已经是 Response
31
- if (response instanceof Response)
32
- return response;
33
- // 使用 constructor.name 进行类型判断(比 instanceof 更快)
34
- switch (response?.constructor?.name) {
35
- case "String":
36
- return new Response(response, { headers: TEXT_HEADERS });
37
- case "Object":
38
- case "Array":
39
- return new Response(JSON.stringify(response), { headers: JSON_HEADERS });
40
- case "Number":
41
- case "Boolean":
42
- return new Response(String(response), { headers: TEXT_HEADERS });
43
- case undefined:
44
- // null 或 undefined
45
- return new Response(null, { status: 204 });
46
- case "ReadableStream":
47
- return new Response(response);
48
- case "Blob":
49
- return new Response(response);
50
- case "ArrayBuffer":
51
- return new Response(response);
52
- case "Uint8Array":
53
- return new Response(response);
54
- default:
55
- // Promise 处理
56
- if (response instanceof Promise) {
57
- return response.then(mapResponse);
58
- }
59
- // 其他情况使用 JSON 序列化
60
- return new Response(JSON.stringify(response), { headers: JSON_HEADERS });
61
- }
19
+ var JSON_HEADERS = { "Content-Type": "application/json" };
20
+ var TEXT_HEADERS = { "Content-Type": "text/plain" };
21
+ function mapResponse(response) {
22
+ if (response instanceof Response) return response;
23
+ switch (response?.constructor?.name) {
24
+ case "String":
25
+ return new Response(response, { headers: TEXT_HEADERS });
26
+ case "Object":
27
+ case "Array":
28
+ return new Response(JSON.stringify(response), { headers: JSON_HEADERS });
29
+ case "Number":
30
+ case "Boolean":
31
+ return new Response(String(response), { headers: TEXT_HEADERS });
32
+ case void 0:
33
+ return new Response(null, { status: 204 });
34
+ case "ReadableStream":
35
+ return new Response(response);
36
+ case "Blob":
37
+ return new Response(response);
38
+ case "ArrayBuffer":
39
+ return new Response(response);
40
+ case "Uint8Array":
41
+ return new Response(response);
42
+ default:
43
+ if (response instanceof Promise) {
44
+ return response.then(mapResponse);
45
+ }
46
+ return new Response(JSON.stringify(response), { headers: JSON_HEADERS });
47
+ }
62
48
  }
63
- /** 生成重定向响应 */
64
- export function redirect(location, status = 302) {
65
- return new Response(null, {
66
- status,
67
- headers: {
68
- Location: location,
69
- },
70
- });
49
+ function redirect(location, status = 302) {
50
+ return new Response(null, {
51
+ status,
52
+ headers: {
53
+ Location: location
54
+ }
55
+ });
71
56
  }
72
- /** 生成纯文本响应 */
73
- export function text(content, status = 200, headers = {}) {
74
- const h = new Headers({
75
- "Content-Type": "text/plain; charset=utf-8",
76
- ...headers,
77
- });
78
- return new Response(content, {
79
- status,
80
- headers: h,
81
- });
57
+ function text(content, status = 200, headers = {}) {
58
+ const h = new Headers({
59
+ "Content-Type": "text/plain; charset=utf-8",
60
+ ...headers
61
+ });
62
+ return new Response(content, {
63
+ status,
64
+ headers: h
65
+ });
82
66
  }
83
- /** 生成HTML响应 */
84
- export function html(content, status = 200, headers = {}) {
85
- const h = new Headers({
86
- "Content-Type": "text/html; charset=utf-8",
87
- ...headers,
88
- });
89
- return new Response(content, {
90
- status,
91
- headers: h,
92
- });
67
+ function html(content, status = 200, headers = {}) {
68
+ const h = new Headers({
69
+ "Content-Type": "text/html; charset=utf-8",
70
+ ...headers
71
+ });
72
+ return new Response(content, {
73
+ status,
74
+ headers: h
75
+ });
93
76
  }
94
- /** 生成空响应(204 No Content) */
95
- export function empty(status = 204, headers = {}) {
96
- return new Response(null, {
97
- status,
98
- headers,
99
- });
77
+ function empty(status = 204, headers = {}) {
78
+ return new Response(null, {
79
+ status,
80
+ headers
81
+ });
100
82
  }
101
- /** 生成流式响应 */
102
- export function stream(stream, status = 200, headers = {}) {
103
- const h = new Headers({
104
- "Content-Type": "application/octet-stream",
105
- ...headers,
106
- });
107
- return new Response(stream, {
108
- status,
109
- headers: h,
110
- });
83
+ function stream(stream2, status = 200, headers = {}) {
84
+ const h = new Headers({
85
+ "Content-Type": "application/octet-stream",
86
+ ...headers
87
+ });
88
+ return new Response(stream2, {
89
+ status,
90
+ headers: h
91
+ });
111
92
  }
93
+ export {
94
+ empty,
95
+ html,
96
+ json,
97
+ mapResponse,
98
+ redirect,
99
+ stream,
100
+ text
101
+ };
102
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/response.ts"],"sourcesContent":["// src/response.ts\n\n/** 生成 JSON 响应 */\nexport function json(\n data: unknown,\n status = 200,\n headers: HeadersInit = {},\n): Response {\n const body = JSON.stringify(data);\n\n // 优化:只在有自定义 headers 时才创建 Headers 对象\n if (Object.keys(headers).length === 0) {\n return new Response(body, {\n status,\n headers: { \"Content-Type\": \"application/json\" },\n });\n }\n\n // 有自定义 headers 时才创建 Headers 对象\n const h = new Headers({\n \"Content-Type\": \"application/json\",\n ...headers,\n });\n\n return new Response(body, {\n status,\n headers: h,\n });\n}\n\n// JSON 响应的预创建 headers(避免每次创建)\nconst JSON_HEADERS = { \"Content-Type\": \"application/json\" };\nconst TEXT_HEADERS = { \"Content-Type\": \"text/plain\" };\n\n/**\n * 类型特化的响应映射\n * 根据返回值类型直接生成 Response,避免不必要的检查\n */\nexport function mapResponse(response: unknown): Response {\n // 快速路径:已经是 Response\n if (response instanceof Response) return response;\n\n // 使用 constructor.name 进行类型判断(比 instanceof 更快)\n switch (response?.constructor?.name) {\n case \"String\":\n return new Response(response as string, { headers: TEXT_HEADERS });\n\n case \"Object\":\n case \"Array\":\n return new Response(JSON.stringify(response), { headers: JSON_HEADERS });\n\n case \"Number\":\n case \"Boolean\":\n return new Response(String(response), { headers: TEXT_HEADERS });\n\n case undefined:\n // null 或 undefined\n return new Response(null, { status: 204 });\n\n case \"ReadableStream\":\n return new Response(response as ReadableStream);\n\n case \"Blob\":\n return new Response(response as Blob);\n\n case \"ArrayBuffer\":\n return new Response(response as ArrayBuffer);\n\n case \"Uint8Array\":\n return new Response(response as unknown as BodyInit);\n\n default:\n // Promise 处理\n if (response instanceof Promise) {\n return response.then(mapResponse) as unknown as Response;\n }\n // 其他情况使用 JSON 序列化\n return new Response(JSON.stringify(response), { headers: JSON_HEADERS });\n }\n}\n\n/** 生成重定向响应 */\nexport function redirect(location: string, status: 301 | 302 = 302): Response {\n return new Response(null, {\n status,\n headers: {\n Location: location,\n },\n });\n}\n\n/** 生成纯文本响应 */\nexport function text(\n content: string,\n status = 200,\n headers: HeadersInit = {},\n): Response {\n const h = new Headers({\n \"Content-Type\": \"text/plain; charset=utf-8\",\n ...headers,\n });\n\n return new Response(content, {\n status,\n headers: h,\n });\n}\n\n/** 生成HTML响应 */\nexport function html(\n content: string,\n status = 200,\n headers: HeadersInit = {},\n): Response {\n const h = new Headers({\n \"Content-Type\": \"text/html; charset=utf-8\",\n ...headers,\n });\n\n return new Response(content, {\n status,\n headers: h,\n });\n}\n\n/** 生成空响应(204 No Content) */\nexport function empty(status = 204, headers: HeadersInit = {}): Response {\n return new Response(null, {\n status,\n headers,\n });\n}\n\n/** 生成流式响应 */\nexport function stream(\n stream: ReadableStream,\n status = 200,\n headers: HeadersInit = {},\n): Response {\n const h = new Headers({\n \"Content-Type\": \"application/octet-stream\",\n ...headers,\n });\n\n return new Response(stream, {\n status,\n headers: h,\n });\n}\n"],"mappings":";AAGO,SAAS,KACd,MACA,SAAS,KACT,UAAuB,CAAC,GACd;AACV,QAAM,OAAO,KAAK,UAAU,IAAI;AAGhC,MAAI,OAAO,KAAK,OAAO,EAAE,WAAW,GAAG;AACrC,WAAO,IAAI,SAAS,MAAM;AAAA,MACxB;AAAA,MACA,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAChD,CAAC;AAAA,EACH;AAGA,QAAM,IAAI,IAAI,QAAQ;AAAA,IACpB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,CAAC;AAED,SAAO,IAAI,SAAS,MAAM;AAAA,IACxB;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;AAGA,IAAM,eAAe,EAAE,gBAAgB,mBAAmB;AAC1D,IAAM,eAAe,EAAE,gBAAgB,aAAa;AAM7C,SAAS,YAAY,UAA6B;AAEvD,MAAI,oBAAoB,SAAU,QAAO;AAGzC,UAAQ,UAAU,aAAa,MAAM;AAAA,IACnC,KAAK;AACH,aAAO,IAAI,SAAS,UAAoB,EAAE,SAAS,aAAa,CAAC;AAAA,IAEnE,KAAK;AAAA,IACL,KAAK;AACH,aAAO,IAAI,SAAS,KAAK,UAAU,QAAQ,GAAG,EAAE,SAAS,aAAa,CAAC;AAAA,IAEzE,KAAK;AAAA,IACL,KAAK;AACH,aAAO,IAAI,SAAS,OAAO,QAAQ,GAAG,EAAE,SAAS,aAAa,CAAC;AAAA,IAEjE,KAAK;AAEH,aAAO,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,IAE3C,KAAK;AACH,aAAO,IAAI,SAAS,QAA0B;AAAA,IAEhD,KAAK;AACH,aAAO,IAAI,SAAS,QAAgB;AAAA,IAEtC,KAAK;AACH,aAAO,IAAI,SAAS,QAAuB;AAAA,IAE7C,KAAK;AACH,aAAO,IAAI,SAAS,QAA+B;AAAA,IAErD;AAEE,UAAI,oBAAoB,SAAS;AAC/B,eAAO,SAAS,KAAK,WAAW;AAAA,MAClC;AAEA,aAAO,IAAI,SAAS,KAAK,UAAU,QAAQ,GAAG,EAAE,SAAS,aAAa,CAAC;AAAA,EAC3E;AACF;AAGO,SAAS,SAAS,UAAkB,SAAoB,KAAe;AAC5E,SAAO,IAAI,SAAS,MAAM;AAAA,IACxB;AAAA,IACA,SAAS;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,EACF,CAAC;AACH;AAGO,SAAS,KACd,SACA,SAAS,KACT,UAAuB,CAAC,GACd;AACV,QAAM,IAAI,IAAI,QAAQ;AAAA,IACpB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,CAAC;AAED,SAAO,IAAI,SAAS,SAAS;AAAA,IAC3B;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;AAGO,SAAS,KACd,SACA,SAAS,KACT,UAAuB,CAAC,GACd;AACV,QAAM,IAAI,IAAI,QAAQ;AAAA,IACpB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,CAAC;AAED,SAAO,IAAI,SAAS,SAAS;AAAA,IAC3B;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;AAGO,SAAS,MAAM,SAAS,KAAK,UAAuB,CAAC,GAAa;AACvE,SAAO,IAAI,SAAS,MAAM;AAAA,IACxB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAGO,SAAS,OACdA,SACA,SAAS,KACT,UAAuB,CAAC,GACd;AACV,QAAM,IAAI,IAAI,QAAQ;AAAA,IACpB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,CAAC;AAED,SAAO,IAAI,SAASA,SAAQ;AAAA,IAC1B;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;","names":["stream"]}
@@ -1,3 +1,6 @@
1
+ import { TSchema } from '@sinclair/typebox';
2
+ import { ValidationResult } from './validators.js';
3
+
1
4
  /**
2
5
  * Schema配置验证器
3
6
  *
@@ -8,23 +11,22 @@
8
11
  * @version 1.0.0
9
12
  * @license MIT
10
13
  */
11
- import type { TSchema } from "@sinclair/typebox";
12
- import { type ValidationResult } from "./validators";
13
- export interface SchemaConfig {
14
+
15
+ interface SchemaConfig {
14
16
  body?: TSchema;
15
17
  query?: TSchema;
16
18
  params?: TSchema;
17
19
  headers?: TSchema;
18
20
  cookies?: TSchema;
19
21
  }
20
- export interface RequestData {
22
+ interface RequestData {
21
23
  body?: unknown;
22
24
  query?: unknown;
23
25
  params?: unknown;
24
26
  headers?: unknown;
25
27
  cookies?: unknown;
26
28
  }
27
- export interface SchemaValidationResult {
29
+ interface SchemaValidationResult {
28
30
  success: boolean;
29
31
  data?: {
30
32
  body?: unknown;
@@ -44,23 +46,25 @@ export interface SchemaValidationResult {
44
46
  * @param data 请求数据
45
47
  * @returns 验证结果
46
48
  */
47
- export declare function validateSchemaConfig(config: SchemaConfig, data: RequestData): SchemaValidationResult;
49
+ declare function validateSchemaConfig(config: SchemaConfig, data: RequestData): SchemaValidationResult;
48
50
  /**
49
51
  * 异步验证SchemaConfig(支持异步验证器)
50
52
  * @param config Schema配置
51
53
  * @param data 请求数据
52
54
  * @returns Promise<验证结果>
53
55
  */
54
- export declare function validateSchemaConfigAsync(config: SchemaConfig, data: RequestData): Promise<SchemaValidationResult>;
56
+ declare function validateSchemaConfigAsync(config: SchemaConfig, data: RequestData): Promise<SchemaValidationResult>;
55
57
  /**
56
58
  * 创建验证器工厂函数
57
59
  * @param config Schema配置
58
60
  * @returns 验证器函数
59
61
  */
60
- export declare function createSchemaValidator(config: SchemaConfig): (data: RequestData) => SchemaValidationResult;
62
+ declare function createSchemaValidator(config: SchemaConfig): (data: RequestData) => SchemaValidationResult;
61
63
  /**
62
64
  * 创建异步验证器工厂函数
63
65
  * @param config Schema配置
64
66
  * @returns 异步验证器函数
65
67
  */
66
- export declare function createAsyncSchemaValidator(config: SchemaConfig): (data: RequestData) => Promise<SchemaValidationResult>;
68
+ declare function createAsyncSchemaValidator(config: SchemaConfig): (data: RequestData) => Promise<SchemaValidationResult>;
69
+
70
+ export { type RequestData, type SchemaConfig, type SchemaValidationResult, createAsyncSchemaValidator, createSchemaValidator, validateSchemaConfig, validateSchemaConfigAsync };