@kevisual/router 0.2.10 → 0.2.12
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/dist/app.js +1271 -550
- package/dist/commander.d.ts +53 -38
- package/dist/commander.js +1211 -492
- package/dist/opencode.d.ts +53 -38
- package/dist/opencode.js +1209 -488
- package/dist/router-browser.d.ts +78 -40
- package/dist/router-browser.js +1214 -493
- package/dist/router-define.d.ts +53 -38
- package/dist/router-simple.js +1 -1
- package/dist/router.d.ts +78 -40
- package/dist/router.js +1263 -540
- package/dist/ws.d.ts +53 -38
- package/dist/ws.js +14 -14
- package/package.json +7 -6
- package/src/browser.ts +2 -0
- package/src/index.ts +2 -0
- package/src/route.ts +3 -30
- package/src/test/app-type.ts +1 -1
- package/src/test/run-schema.ts +15 -1
- package/src/types/index.ts +39 -0
- package/src/test/chat.ts +0 -17
package/dist/router-define.d.ts
CHANGED
|
@@ -26,6 +26,57 @@ declare class MockProcess {
|
|
|
26
26
|
desctroy(): void;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
/** JSON Schema 基本类型映射到 TypeScript 类型 */
|
|
30
|
+
type JsonSchemaTypeToTS<T> = T extends {
|
|
31
|
+
type: "string";
|
|
32
|
+
} ? string : T extends {
|
|
33
|
+
type: "boolean";
|
|
34
|
+
} ? boolean : T extends {
|
|
35
|
+
type: "number";
|
|
36
|
+
} ? number : T extends {
|
|
37
|
+
type: "integer";
|
|
38
|
+
} ? number : T extends {
|
|
39
|
+
type: "object";
|
|
40
|
+
} ? object : T extends {
|
|
41
|
+
type: "array";
|
|
42
|
+
} ? any[] : any;
|
|
43
|
+
/** 将 args shape(key -> JSON Schema 类型)转换为 payload 类型,支持 optional: true 的字段为可选 */
|
|
44
|
+
type ArgsShapeToPayload<T> = {
|
|
45
|
+
[K in keyof T as T[K] extends {
|
|
46
|
+
optional: true;
|
|
47
|
+
} ? never : K]: JsonSchemaTypeToTS<T[K]>;
|
|
48
|
+
} & {
|
|
49
|
+
[K in keyof T as T[K] extends {
|
|
50
|
+
optional: true;
|
|
51
|
+
} ? K : never]?: JsonSchemaTypeToTS<T[K]>;
|
|
52
|
+
};
|
|
53
|
+
/** 处理两种 args 格式:完整 JSON Schema(含 properties)或简单 key->type 映射 */
|
|
54
|
+
type ArgsToPayload<T> = T extends {
|
|
55
|
+
type: "object";
|
|
56
|
+
properties: infer P;
|
|
57
|
+
} ? ArgsShapeToPayload<P> : ArgsShapeToPayload<T>;
|
|
58
|
+
/** 从 API 定义中提取 metadata.args */
|
|
59
|
+
type ExtractArgs<T> = T extends {
|
|
60
|
+
metadata: {
|
|
61
|
+
args: infer A;
|
|
62
|
+
};
|
|
63
|
+
} ? A : {};
|
|
64
|
+
/** 从 API 定义中提取 metadata.returns */
|
|
65
|
+
type ExtractReturns<T> = T extends {
|
|
66
|
+
metadata: {
|
|
67
|
+
returns: infer R;
|
|
68
|
+
};
|
|
69
|
+
} ? R : unknown;
|
|
70
|
+
/** runAction 第二个参数的类型,根据第一个参数的 metadata.args 推断 */
|
|
71
|
+
type RunActionPayload<T> = ArgsToPayload<ExtractArgs<T>>;
|
|
72
|
+
/** runAction 的返回类型,根据 API 定义中的 metadata.returns 推断 data 字段类型 */
|
|
73
|
+
type RunActionReturns<T> = {
|
|
74
|
+
code: number | string;
|
|
75
|
+
data?: unknown extends ExtractReturns<T> ? any : ArgsToPayload<ExtractReturns<T>>;
|
|
76
|
+
message?: string;
|
|
77
|
+
[key: string]: any;
|
|
78
|
+
};
|
|
79
|
+
|
|
29
80
|
type RouterContextT = {
|
|
30
81
|
code?: number;
|
|
31
82
|
[key: string]: any;
|
|
@@ -466,8 +517,9 @@ declare class QueryRouterServer<C extends SimpleObject$1 = SimpleObject$1> exten
|
|
|
466
517
|
key?: string;
|
|
467
518
|
metadata?: {
|
|
468
519
|
args?: any;
|
|
520
|
+
returns?: any;
|
|
469
521
|
};
|
|
470
|
-
} = {}>(api: T, payload: RunActionPayload<T>, ctx?: RouteContext<C>): Promise<
|
|
522
|
+
} = {}>(api: T, payload: RunActionPayload<T>, ctx?: RouteContext<C>): Promise<RunActionReturns<T>>;
|
|
471
523
|
/**
|
|
472
524
|
* 创建认证相关的中间件,默认是 auth, auth-admin, auth-can 三个中间件
|
|
473
525
|
* @param fun 认证函数,接收 RouteContext 和认证类型
|
|
@@ -476,43 +528,6 @@ declare class QueryRouterServer<C extends SimpleObject$1 = SimpleObject$1> exten
|
|
|
476
528
|
overwrite?: boolean;
|
|
477
529
|
}): Promise<void>;
|
|
478
530
|
}
|
|
479
|
-
/** JSON Schema 基本类型映射到 TypeScript 类型 */
|
|
480
|
-
type JsonSchemaTypeToTS<T> = T extends {
|
|
481
|
-
type: "string";
|
|
482
|
-
} ? string : T extends {
|
|
483
|
-
type: "boolean";
|
|
484
|
-
} ? boolean : T extends {
|
|
485
|
-
type: "number";
|
|
486
|
-
} ? number : T extends {
|
|
487
|
-
type: "integer";
|
|
488
|
-
} ? number : T extends {
|
|
489
|
-
type: "object";
|
|
490
|
-
} ? object : T extends {
|
|
491
|
-
type: "array";
|
|
492
|
-
} ? any[] : any;
|
|
493
|
-
/** 将 args shape(key -> JSON Schema 类型)转换为 payload 类型,支持 optional: true 的字段为可选 */
|
|
494
|
-
type ArgsShapeToPayload<T> = {
|
|
495
|
-
[K in keyof T as T[K] extends {
|
|
496
|
-
optional: true;
|
|
497
|
-
} ? never : K]: JsonSchemaTypeToTS<T[K]>;
|
|
498
|
-
} & {
|
|
499
|
-
[K in keyof T as T[K] extends {
|
|
500
|
-
optional: true;
|
|
501
|
-
} ? K : never]?: JsonSchemaTypeToTS<T[K]>;
|
|
502
|
-
};
|
|
503
|
-
/** 处理两种 args 格式:完整 JSON Schema(含 properties)或简单 key->type 映射 */
|
|
504
|
-
type ArgsToPayload<T> = T extends {
|
|
505
|
-
type: "object";
|
|
506
|
-
properties: infer P;
|
|
507
|
-
} ? ArgsShapeToPayload<P> : ArgsShapeToPayload<T>;
|
|
508
|
-
/** 从 API 定义中提取 metadata.args */
|
|
509
|
-
type ExtractArgs<T> = T extends {
|
|
510
|
-
metadata: {
|
|
511
|
-
args: infer A;
|
|
512
|
-
};
|
|
513
|
-
} ? A : {};
|
|
514
|
-
/** runAction 第二个参数的类型,根据第一个参数的 metadata.args 推断 */
|
|
515
|
-
type RunActionPayload<T> = ArgsToPayload<ExtractArgs<T>>;
|
|
516
531
|
|
|
517
532
|
type RouteObject = {
|
|
518
533
|
[key: string]: RouteOpts;
|
package/dist/router-simple.js
CHANGED
|
@@ -30,7 +30,7 @@ var __toESM = (mod, isNodeMode, target) => {
|
|
|
30
30
|
};
|
|
31
31
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
32
32
|
|
|
33
|
-
// node_modules/path-to-regexp/dist/index.js
|
|
33
|
+
// node_modules/.pnpm/path-to-regexp@8.4.2/node_modules/path-to-regexp/dist/index.js
|
|
34
34
|
var require_dist = __commonJS((exports) => {
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.PathError = exports.TokenData = undefined;
|
package/dist/router.d.ts
CHANGED
|
@@ -59,6 +59,80 @@ declare class MockProcess {
|
|
|
59
59
|
on(fn: (msg?: any) => any): void;
|
|
60
60
|
desctroy(): void;
|
|
61
61
|
}
|
|
62
|
+
type ListenProcessParams = {
|
|
63
|
+
message?: RunMessage;
|
|
64
|
+
context?: any;
|
|
65
|
+
};
|
|
66
|
+
type ListenProcessResponse = {
|
|
67
|
+
success?: boolean;
|
|
68
|
+
data?: {
|
|
69
|
+
code?: number;
|
|
70
|
+
data?: any;
|
|
71
|
+
message?: string;
|
|
72
|
+
[key: string]: any;
|
|
73
|
+
};
|
|
74
|
+
error?: any;
|
|
75
|
+
timestamp?: string;
|
|
76
|
+
[key: string]: any;
|
|
77
|
+
};
|
|
78
|
+
type ListenProcessOptions = {
|
|
79
|
+
app?: QueryRouterServer;
|
|
80
|
+
mockProcess?: MockProcess;
|
|
81
|
+
params?: ListenProcessParams;
|
|
82
|
+
timeout?: number;
|
|
83
|
+
};
|
|
84
|
+
declare const listenProcess: ({ app, mockProcess, params, timeout }: ListenProcessOptions) => Promise<void>;
|
|
85
|
+
|
|
86
|
+
/** JSON Schema 基本类型映射到 TypeScript 类型 */
|
|
87
|
+
type JsonSchemaTypeToTS<T> = T extends {
|
|
88
|
+
type: "string";
|
|
89
|
+
} ? string : T extends {
|
|
90
|
+
type: "boolean";
|
|
91
|
+
} ? boolean : T extends {
|
|
92
|
+
type: "number";
|
|
93
|
+
} ? number : T extends {
|
|
94
|
+
type: "integer";
|
|
95
|
+
} ? number : T extends {
|
|
96
|
+
type: "object";
|
|
97
|
+
} ? object : T extends {
|
|
98
|
+
type: "array";
|
|
99
|
+
} ? any[] : any;
|
|
100
|
+
/** 将 args shape(key -> JSON Schema 类型)转换为 payload 类型,支持 optional: true 的字段为可选 */
|
|
101
|
+
type ArgsShapeToPayload<T> = {
|
|
102
|
+
[K in keyof T as T[K] extends {
|
|
103
|
+
optional: true;
|
|
104
|
+
} ? never : K]: JsonSchemaTypeToTS<T[K]>;
|
|
105
|
+
} & {
|
|
106
|
+
[K in keyof T as T[K] extends {
|
|
107
|
+
optional: true;
|
|
108
|
+
} ? K : never]?: JsonSchemaTypeToTS<T[K]>;
|
|
109
|
+
};
|
|
110
|
+
/** 处理两种 args 格式:完整 JSON Schema(含 properties)或简单 key->type 映射 */
|
|
111
|
+
type ArgsToPayload<T> = T extends {
|
|
112
|
+
type: "object";
|
|
113
|
+
properties: infer P;
|
|
114
|
+
} ? ArgsShapeToPayload<P> : ArgsShapeToPayload<T>;
|
|
115
|
+
/** 从 API 定义中提取 metadata.args */
|
|
116
|
+
type ExtractArgs<T> = T extends {
|
|
117
|
+
metadata: {
|
|
118
|
+
args: infer A;
|
|
119
|
+
};
|
|
120
|
+
} ? A : {};
|
|
121
|
+
/** 从 API 定义中提取 metadata.returns */
|
|
122
|
+
type ExtractReturns<T> = T extends {
|
|
123
|
+
metadata: {
|
|
124
|
+
returns: infer R;
|
|
125
|
+
};
|
|
126
|
+
} ? R : unknown;
|
|
127
|
+
/** runAction 第二个参数的类型,根据第一个参数的 metadata.args 推断 */
|
|
128
|
+
type RunActionPayload<T> = ArgsToPayload<ExtractArgs<T>>;
|
|
129
|
+
/** runAction 的返回类型,根据 API 定义中的 metadata.returns 推断 data 字段类型 */
|
|
130
|
+
type RunActionReturns<T> = {
|
|
131
|
+
code: number | string;
|
|
132
|
+
data?: unknown extends ExtractReturns<T> ? any : ArgsToPayload<ExtractReturns<T>>;
|
|
133
|
+
message?: string;
|
|
134
|
+
[key: string]: any;
|
|
135
|
+
};
|
|
62
136
|
|
|
63
137
|
type RouterContextT = {
|
|
64
138
|
code?: number;
|
|
@@ -531,8 +605,9 @@ declare class QueryRouterServer<C extends SimpleObject$1 = SimpleObject$1> exten
|
|
|
531
605
|
key?: string;
|
|
532
606
|
metadata?: {
|
|
533
607
|
args?: any;
|
|
608
|
+
returns?: any;
|
|
534
609
|
};
|
|
535
|
-
} = {}>(api: T, payload: RunActionPayload<T>, ctx?: RouteContext<C>): Promise<
|
|
610
|
+
} = {}>(api: T, payload: RunActionPayload<T>, ctx?: RouteContext<C>): Promise<RunActionReturns<T>>;
|
|
536
611
|
/**
|
|
537
612
|
* 创建认证相关的中间件,默认是 auth, auth-admin, auth-can 三个中间件
|
|
538
613
|
* @param fun 认证函数,接收 RouteContext 和认证类型
|
|
@@ -543,43 +618,6 @@ declare class QueryRouterServer<C extends SimpleObject$1 = SimpleObject$1> exten
|
|
|
543
618
|
}
|
|
544
619
|
declare class Mini extends QueryRouterServer {
|
|
545
620
|
}
|
|
546
|
-
/** JSON Schema 基本类型映射到 TypeScript 类型 */
|
|
547
|
-
type JsonSchemaTypeToTS<T> = T extends {
|
|
548
|
-
type: "string";
|
|
549
|
-
} ? string : T extends {
|
|
550
|
-
type: "boolean";
|
|
551
|
-
} ? boolean : T extends {
|
|
552
|
-
type: "number";
|
|
553
|
-
} ? number : T extends {
|
|
554
|
-
type: "integer";
|
|
555
|
-
} ? number : T extends {
|
|
556
|
-
type: "object";
|
|
557
|
-
} ? object : T extends {
|
|
558
|
-
type: "array";
|
|
559
|
-
} ? any[] : any;
|
|
560
|
-
/** 将 args shape(key -> JSON Schema 类型)转换为 payload 类型,支持 optional: true 的字段为可选 */
|
|
561
|
-
type ArgsShapeToPayload<T> = {
|
|
562
|
-
[K in keyof T as T[K] extends {
|
|
563
|
-
optional: true;
|
|
564
|
-
} ? never : K]: JsonSchemaTypeToTS<T[K]>;
|
|
565
|
-
} & {
|
|
566
|
-
[K in keyof T as T[K] extends {
|
|
567
|
-
optional: true;
|
|
568
|
-
} ? K : never]?: JsonSchemaTypeToTS<T[K]>;
|
|
569
|
-
};
|
|
570
|
-
/** 处理两种 args 格式:完整 JSON Schema(含 properties)或简单 key->type 映射 */
|
|
571
|
-
type ArgsToPayload<T> = T extends {
|
|
572
|
-
type: "object";
|
|
573
|
-
properties: infer P;
|
|
574
|
-
} ? ArgsShapeToPayload<P> : ArgsShapeToPayload<T>;
|
|
575
|
-
/** 从 API 定义中提取 metadata.args */
|
|
576
|
-
type ExtractArgs<T> = T extends {
|
|
577
|
-
metadata: {
|
|
578
|
-
args: infer A;
|
|
579
|
-
};
|
|
580
|
-
} ? A : {};
|
|
581
|
-
/** runAction 第二个参数的类型,根据第一个参数的 metadata.args 推断 */
|
|
582
|
-
type RunActionPayload<T> = ArgsToPayload<ExtractArgs<T>>;
|
|
583
621
|
|
|
584
622
|
type BaseRule = {
|
|
585
623
|
value?: any;
|
|
@@ -1088,5 +1126,5 @@ declare class App<U = {}> extends QueryRouterServer<AppRouteContext<U>> {
|
|
|
1088
1126
|
onServerRequest(fn: (req: IncomingMessage$1, res: ServerResponse$1) => void): void;
|
|
1089
1127
|
}
|
|
1090
1128
|
|
|
1091
|
-
export { App, CustomError, Mini, QueryRouter, QueryRouterServer, QueryUtil, Route, ServerNode, createSchema, createSkill, define, fromJSONSchema, handleServer, toJSONSchema, tool, util };
|
|
1092
|
-
export type { HttpListenerFun, Listener, OnListener, OnWebSocketFn, RouteArray, RouteContext, RouteInfo, RouteMiddleware, RouteObject, RouteOpts, RouterReq, RouterRes, Rule, Run, Schema, Skill, WS, WebSocketListenerFun, WebSocketReq, WebSocketRes };
|
|
1129
|
+
export { App, CustomError, Mini, MockProcess, QueryRouter, QueryRouterServer, QueryUtil, Route, ServerNode, createSchema, createSkill, define, fromJSONSchema, handleServer, listenProcess, toJSONSchema, tool, util };
|
|
1130
|
+
export type { HttpListenerFun, ListenProcessOptions, ListenProcessParams, ListenProcessResponse, Listener, OnListener, OnWebSocketFn, RouteArray, RouteContext, RouteInfo, RouteMiddleware, RouteObject, RouteOpts, RouterReq, RouterRes, Rule, Run, Schema, Skill, WS, WebSocketListenerFun, WebSocketReq, WebSocketRes };
|