@lsby/net-core 0.4.0-beta.9 → 0.4.0

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 (52) hide show
  1. package/dist/bin/gen-table-type/addition.cjs +62 -3
  2. package/dist/bin/gen-table-type/bin.cjs +67 -9
  3. package/dist/bin/gen-table-type/index.cjs +67 -9
  4. package/dist/cjs/bin/gen-table-type/addition.cjs +62 -3
  5. package/dist/cjs/bin/gen-table-type/bin.cjs +67 -9
  6. package/dist/cjs/bin/gen-table-type/index.cjs +67 -9
  7. package/dist/cjs/global/global.cjs +15 -6
  8. package/dist/cjs/global/ws.cjs +15 -6
  9. package/dist/cjs/global/ws.d.cts +7 -5
  10. package/dist/cjs/index.cjs +46 -18
  11. package/dist/cjs/index.d.cts +1 -1
  12. package/dist/cjs/interface-api/interface-logic.cjs +15 -6
  13. package/dist/cjs/interface-table/interface-table.cjs +12 -0
  14. package/dist/cjs/interface-table/interface-table.d.cts +47 -10
  15. package/dist/cjs/plugin/extend/custom-data.cjs +15 -6
  16. package/dist/cjs/plugin/extend/json.cjs +15 -6
  17. package/dist/cjs/plugin/extend/urlencoded.cjs +15 -6
  18. package/dist/cjs/plugin/extend/web-socket.cjs +28 -12
  19. package/dist/cjs/plugin/extend/web-socket.d.cts +2 -1
  20. package/dist/cjs/server/server.cjs +21 -12
  21. package/dist/esm/bin/gen-table-type/addition.js +1 -1
  22. package/dist/esm/bin/gen-table-type/bin.js +2 -2
  23. package/dist/esm/bin/gen-table-type/index.js +2 -2
  24. package/dist/esm/{chunk-DGDZQLIJ.js → chunk-6OUBMR67.js} +1 -1
  25. package/dist/esm/{chunk-LLLXAZBC.js → chunk-7BWGQYV4.js} +1 -1
  26. package/dist/esm/chunk-7SYNHJKU.js +31 -0
  27. package/dist/esm/chunk-GN24MVWF.js +23 -0
  28. package/dist/esm/{chunk-2G4PSYTL.js → chunk-GXEQYEJ4.js} +1 -1
  29. package/dist/esm/{chunk-VSMO652U.js → chunk-HSGHMDHC.js} +6 -7
  30. package/dist/esm/{chunk-7RPSQQZA.js → chunk-JVIKC22S.js} +7 -7
  31. package/dist/esm/{chunk-43ZE4ZNH.js → chunk-LM4VEBKS.js} +1 -1
  32. package/dist/esm/{chunk-XOR7HWL4.js → chunk-NDNOPR5R.js} +14 -7
  33. package/dist/esm/{chunk-JXGP4GSQ.js → chunk-TELFIRYE.js} +1 -1
  34. package/dist/esm/chunk-V3CNI7QV.js +99 -0
  35. package/dist/esm/global/global.js +2 -2
  36. package/dist/esm/global/ws.d.ts +7 -5
  37. package/dist/esm/global/ws.js +1 -1
  38. package/dist/esm/index.d.ts +1 -1
  39. package/dist/esm/index.js +9 -9
  40. package/dist/esm/interface-api/interface-logic.js +3 -3
  41. package/dist/esm/interface-table/interface-table.d.ts +47 -10
  42. package/dist/esm/interface-table/interface-table.js +1 -1
  43. package/dist/esm/plugin/extend/custom-data.js +3 -3
  44. package/dist/esm/plugin/extend/json.js +3 -3
  45. package/dist/esm/plugin/extend/urlencoded.js +3 -3
  46. package/dist/esm/plugin/extend/web-socket.d.ts +2 -1
  47. package/dist/esm/plugin/extend/web-socket.js +3 -3
  48. package/dist/esm/server/server.js +3 -3
  49. package/package.json +2 -2
  50. package/dist/esm/chunk-63YFVECY.js +0 -11
  51. package/dist/esm/chunk-CPOABMEY.js +0 -40
  52. package/dist/esm/chunk-FIQSBTYJ.js +0 -22
@@ -54,9 +54,68 @@ export type \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<A> = A extends '\u5B57\u7
54
54
  : A extends '\u5E03\u5C14'
55
55
  ? boolean
56
56
  : never
57
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> = \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> }
58
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<\u5BF9\u8C61> =
59
- \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> | undefined }
57
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
58
+ \u662Fany<\u5BF9\u8C61> extends true
59
+ ? any
60
+ : { [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key] ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> : never }
61
+ export type \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
62
+ \u662Fany<\u5BF9\u8C61> extends true
63
+ ? any
64
+ : {
65
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
66
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
67
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
68
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
69
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
70
+ : never
71
+ : never
72
+ }
73
+ export type \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
74
+ \u662Fany<\u5BF9\u8C61> extends true
75
+ ? any
76
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
77
+ \u8054\u5408\u8F6C\u5143\u7EC4<
78
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
79
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
80
+ ? '\u53EF\u9009' extends keyof \u5BF9\u8C61[key]
81
+ ? \u5BF9\u8C61[key]['\u53EF\u9009'] extends 'false'
82
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
83
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | undefined
84
+ : never
85
+ : never
86
+ }>
87
+ >
88
+ >
89
+ export type \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
90
+ \u662Fany<\u5BF9\u8C61> extends true
91
+ ? any
92
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
93
+ \u8054\u5408\u8F6C\u5143\u7EC4<
94
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
95
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
96
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
97
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
98
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
99
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
100
+ : never
101
+ : never
102
+ }>
103
+ >
104
+ >
105
+ export type \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<X> = {
106
+ [key in keyof X]: undefined extends X[key] ? { [k in key]?: X[key] } : { [k in key]: X[key] }
107
+ }[keyof X]
108
+
109
+ type \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<Arr> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x & \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<xs> : never
110
+
111
+ type \u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X> = X extends any ? (a: (x: any) => X) => any : never
112
+ type \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<X> = (X extends any ? X : never) extends (a: infer A) => any ? A : never
113
+ type \u53D6\u6700\u540E\u4E00\u4E2A<X> = \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<\u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X>> extends (x: any) => infer A ? A : never
114
+ type \u8054\u5408\u8F6C\u5143\u7EC4<X> = [X] extends [never]
115
+ ? []
116
+ : \u53D6\u6700\u540E\u4E00\u4E2A<X> extends infer Last
117
+ ? [...\u8054\u5408\u8F6C\u5143\u7EC4<Exclude<X, Last>>, Last]
118
+ : never
60
119
  `;
61
120
  // Annotate the CommonJS export names for ESM import in node:
62
121
  0 && (module.exports = {
@@ -66,9 +66,68 @@ export type \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<A> = A extends '\u5B57\u7
66
66
  : A extends '\u5E03\u5C14'
67
67
  ? boolean
68
68
  : never
69
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> = \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> }
70
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<\u5BF9\u8C61> =
71
- \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> | undefined }
69
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
70
+ \u662Fany<\u5BF9\u8C61> extends true
71
+ ? any
72
+ : { [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key] ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> : never }
73
+ export type \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
74
+ \u662Fany<\u5BF9\u8C61> extends true
75
+ ? any
76
+ : {
77
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
78
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
79
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
80
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
81
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
82
+ : never
83
+ : never
84
+ }
85
+ export type \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
86
+ \u662Fany<\u5BF9\u8C61> extends true
87
+ ? any
88
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
89
+ \u8054\u5408\u8F6C\u5143\u7EC4<
90
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
91
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
92
+ ? '\u53EF\u9009' extends keyof \u5BF9\u8C61[key]
93
+ ? \u5BF9\u8C61[key]['\u53EF\u9009'] extends 'false'
94
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
95
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | undefined
96
+ : never
97
+ : never
98
+ }>
99
+ >
100
+ >
101
+ export type \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
102
+ \u662Fany<\u5BF9\u8C61> extends true
103
+ ? any
104
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
105
+ \u8054\u5408\u8F6C\u5143\u7EC4<
106
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
107
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
108
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
109
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
110
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
111
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
112
+ : never
113
+ : never
114
+ }>
115
+ >
116
+ >
117
+ export type \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<X> = {
118
+ [key in keyof X]: undefined extends X[key] ? { [k in key]?: X[key] } : { [k in key]: X[key] }
119
+ }[keyof X]
120
+
121
+ type \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<Arr> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x & \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<xs> : never
122
+
123
+ type \u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X> = X extends any ? (a: (x: any) => X) => any : never
124
+ type \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<X> = (X extends any ? X : never) extends (a: infer A) => any ? A : never
125
+ type \u53D6\u6700\u540E\u4E00\u4E2A<X> = \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<\u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X>> extends (x: any) => infer A ? A : never
126
+ type \u8054\u5408\u8F6C\u5143\u7EC4<X> = [X] extends [never]
127
+ ? []
128
+ : \u53D6\u6700\u540E\u4E00\u4E2A<X> extends infer Last
129
+ ? [...\u8054\u5408\u8F6C\u5143\u7EC4<Exclude<X, Last>>, Last]
130
+ : never
72
131
  `;
73
132
 
74
133
  // src/bin/gen-table-type/index.ts
@@ -116,7 +175,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
116
175
  await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
117
176
  let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
118
177
  let \u4EE3\u7801 = `
119
- import { \u5206\u9875\u9009\u9879, \u6392\u5E8F\u9009\u9879, \u6761\u4EF6\u7EC4, \u7FFB\u8BD1\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A, \u865A\u62DF\u8868 } from '@lsby/net-core'
178
+ import { \u5206\u9875\u9009\u9879, \u6392\u5E8F\u9009\u9879, \u6761\u4EF6\u7EC4, \u7FFB\u8BD1\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0, \u865A\u62DF\u8868, \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0 } from '@lsby/net-core'
120
179
  import { z } from 'zod'
121
180
  import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}",
122
181
 
@@ -138,11 +197,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
138
197
  \u8DEF\u5F84: \u8DEF\u5F84
139
198
 
140
199
  \u6784\u9020\u53C2\u6570: \u5BFC\u5165 extends \u865A\u62DF\u8868<infer X, any, any, any, any, any> ? z.infer<X> : never
141
- \u5217\u7C7B\u578B: \u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>
142
200
 
143
- \u589E\u53C2\u6570_\u6570\u636E\u4EEC: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>[]
201
+ \u589E\u53C2\u6570_\u6570\u636E\u4EEC: \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[]
144
202
  \u5220\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
145
- \u6539\u53C2\u6570_\u65B0\u503C: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
203
+ \u6539\u53C2\u6570_\u65B0\u503C: Partial<\u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
146
204
  \u6539\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
147
205
  \u67E5\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
148
206
  \u67E5\u53C2\u6570_\u5206\u9875\u6761\u4EF6: \u5206\u9875\u9009\u9879
@@ -156,12 +214,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
156
214
  \u589E\u539F\u59CB\u6B63\u786E\u503C: {}
157
215
  \u5220\u539F\u59CB\u6B63\u786E\u503C: {}
158
216
  \u6539\u539F\u59CB\u6B63\u786E\u503C: {}
159
- \u67E5\u539F\u59CB\u6B63\u786E\u503C: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[]
217
+ \u67E5\u539F\u59CB\u6B63\u786E\u503C: \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[]
160
218
 
161
219
  \u589E\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u589E\u9519\u8BEF } | { status: 'success'; data:{} }
162
220
  \u5220\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u5220\u9519\u8BEF } | { status: 'success'; data:{} }
163
221
  \u6539\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u6539\u9519\u8BEF } | { status: 'success'; data:{} }
164
- \u67E5\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u67E5\u9519\u8BEF } | { status: 'success'; data: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[] }
222
+ \u67E5\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u67E5\u9519\u8BEF } | { status: 'success'; data: \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[] }
165
223
  }
166
224
  : never
167
225
  `;
@@ -71,9 +71,68 @@ export type \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<A> = A extends '\u5B57\u7
71
71
  : A extends '\u5E03\u5C14'
72
72
  ? boolean
73
73
  : never
74
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> = \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> }
75
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<\u5BF9\u8C61> =
76
- \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> | undefined }
74
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
75
+ \u662Fany<\u5BF9\u8C61> extends true
76
+ ? any
77
+ : { [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key] ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> : never }
78
+ export type \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
79
+ \u662Fany<\u5BF9\u8C61> extends true
80
+ ? any
81
+ : {
82
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
83
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
84
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
85
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
86
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
87
+ : never
88
+ : never
89
+ }
90
+ export type \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
91
+ \u662Fany<\u5BF9\u8C61> extends true
92
+ ? any
93
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
94
+ \u8054\u5408\u8F6C\u5143\u7EC4<
95
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
96
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
97
+ ? '\u53EF\u9009' extends keyof \u5BF9\u8C61[key]
98
+ ? \u5BF9\u8C61[key]['\u53EF\u9009'] extends 'false'
99
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
100
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | undefined
101
+ : never
102
+ : never
103
+ }>
104
+ >
105
+ >
106
+ export type \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
107
+ \u662Fany<\u5BF9\u8C61> extends true
108
+ ? any
109
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
110
+ \u8054\u5408\u8F6C\u5143\u7EC4<
111
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
112
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
113
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
114
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
115
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
116
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
117
+ : never
118
+ : never
119
+ }>
120
+ >
121
+ >
122
+ export type \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<X> = {
123
+ [key in keyof X]: undefined extends X[key] ? { [k in key]?: X[key] } : { [k in key]: X[key] }
124
+ }[keyof X]
125
+
126
+ type \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<Arr> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x & \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<xs> : never
127
+
128
+ type \u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X> = X extends any ? (a: (x: any) => X) => any : never
129
+ type \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<X> = (X extends any ? X : never) extends (a: infer A) => any ? A : never
130
+ type \u53D6\u6700\u540E\u4E00\u4E2A<X> = \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<\u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X>> extends (x: any) => infer A ? A : never
131
+ type \u8054\u5408\u8F6C\u5143\u7EC4<X> = [X] extends [never]
132
+ ? []
133
+ : \u53D6\u6700\u540E\u4E00\u4E2A<X> extends infer Last
134
+ ? [...\u8054\u5408\u8F6C\u5143\u7EC4<Exclude<X, Last>>, Last]
135
+ : never
77
136
  `;
78
137
 
79
138
  // src/bin/gen-table-type/index.ts
@@ -121,7 +180,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
121
180
  await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
122
181
  let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
123
182
  let \u4EE3\u7801 = `
124
- import { \u5206\u9875\u9009\u9879, \u6392\u5E8F\u9009\u9879, \u6761\u4EF6\u7EC4, \u7FFB\u8BD1\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A, \u865A\u62DF\u8868 } from '@lsby/net-core'
183
+ import { \u5206\u9875\u9009\u9879, \u6392\u5E8F\u9009\u9879, \u6761\u4EF6\u7EC4, \u7FFB\u8BD1\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0, \u865A\u62DF\u8868, \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0 } from '@lsby/net-core'
125
184
  import { z } from 'zod'
126
185
  import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}",
127
186
 
@@ -143,11 +202,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
143
202
  \u8DEF\u5F84: \u8DEF\u5F84
144
203
 
145
204
  \u6784\u9020\u53C2\u6570: \u5BFC\u5165 extends \u865A\u62DF\u8868<infer X, any, any, any, any, any> ? z.infer<X> : never
146
- \u5217\u7C7B\u578B: \u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>
147
205
 
148
- \u589E\u53C2\u6570_\u6570\u636E\u4EEC: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>[]
206
+ \u589E\u53C2\u6570_\u6570\u636E\u4EEC: \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[]
149
207
  \u5220\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
150
- \u6539\u53C2\u6570_\u65B0\u503C: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
208
+ \u6539\u53C2\u6570_\u65B0\u503C: Partial<\u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
151
209
  \u6539\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
152
210
  \u67E5\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
153
211
  \u67E5\u53C2\u6570_\u5206\u9875\u6761\u4EF6: \u5206\u9875\u9009\u9879
@@ -161,12 +219,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
161
219
  \u589E\u539F\u59CB\u6B63\u786E\u503C: {}
162
220
  \u5220\u539F\u59CB\u6B63\u786E\u503C: {}
163
221
  \u6539\u539F\u59CB\u6B63\u786E\u503C: {}
164
- \u67E5\u539F\u59CB\u6B63\u786E\u503C: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[]
222
+ \u67E5\u539F\u59CB\u6B63\u786E\u503C: \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[]
165
223
 
166
224
  \u589E\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u589E\u9519\u8BEF } | { status: 'success'; data:{} }
167
225
  \u5220\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u5220\u9519\u8BEF } | { status: 'success'; data:{} }
168
226
  \u6539\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u6539\u9519\u8BEF } | { status: 'success'; data:{} }
169
- \u67E5\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u67E5\u9519\u8BEF } | { status: 'success'; data: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[] }
227
+ \u67E5\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u67E5\u9519\u8BEF } | { status: 'success'; data: \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[] }
170
228
  }
171
229
  : never
172
230
  `;
@@ -54,9 +54,68 @@ export type \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<A> = A extends '\u5B57\u7
54
54
  : A extends '\u5E03\u5C14'
55
55
  ? boolean
56
56
  : never
57
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> = \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> }
58
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<\u5BF9\u8C61> =
59
- \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> | undefined }
57
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
58
+ \u662Fany<\u5BF9\u8C61> extends true
59
+ ? any
60
+ : { [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key] ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> : never }
61
+ export type \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
62
+ \u662Fany<\u5BF9\u8C61> extends true
63
+ ? any
64
+ : {
65
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
66
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
67
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
68
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
69
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
70
+ : never
71
+ : never
72
+ }
73
+ export type \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
74
+ \u662Fany<\u5BF9\u8C61> extends true
75
+ ? any
76
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
77
+ \u8054\u5408\u8F6C\u5143\u7EC4<
78
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
79
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
80
+ ? '\u53EF\u9009' extends keyof \u5BF9\u8C61[key]
81
+ ? \u5BF9\u8C61[key]['\u53EF\u9009'] extends 'false'
82
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
83
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | undefined
84
+ : never
85
+ : never
86
+ }>
87
+ >
88
+ >
89
+ export type \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
90
+ \u662Fany<\u5BF9\u8C61> extends true
91
+ ? any
92
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
93
+ \u8054\u5408\u8F6C\u5143\u7EC4<
94
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
95
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
96
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
97
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
98
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
99
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
100
+ : never
101
+ : never
102
+ }>
103
+ >
104
+ >
105
+ export type \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<X> = {
106
+ [key in keyof X]: undefined extends X[key] ? { [k in key]?: X[key] } : { [k in key]: X[key] }
107
+ }[keyof X]
108
+
109
+ type \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<Arr> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x & \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<xs> : never
110
+
111
+ type \u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X> = X extends any ? (a: (x: any) => X) => any : never
112
+ type \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<X> = (X extends any ? X : never) extends (a: infer A) => any ? A : never
113
+ type \u53D6\u6700\u540E\u4E00\u4E2A<X> = \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<\u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X>> extends (x: any) => infer A ? A : never
114
+ type \u8054\u5408\u8F6C\u5143\u7EC4<X> = [X] extends [never]
115
+ ? []
116
+ : \u53D6\u6700\u540E\u4E00\u4E2A<X> extends infer Last
117
+ ? [...\u8054\u5408\u8F6C\u5143\u7EC4<Exclude<X, Last>>, Last]
118
+ : never
60
119
  `;
61
120
  // Annotate the CommonJS export names for ESM import in node:
62
121
  0 && (module.exports = {
@@ -66,9 +66,68 @@ export type \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<A> = A extends '\u5B57\u7
66
66
  : A extends '\u5E03\u5C14'
67
67
  ? boolean
68
68
  : never
69
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> = \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> }
70
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<\u5BF9\u8C61> =
71
- \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> | undefined }
69
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
70
+ \u662Fany<\u5BF9\u8C61> extends true
71
+ ? any
72
+ : { [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key] ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> : never }
73
+ export type \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
74
+ \u662Fany<\u5BF9\u8C61> extends true
75
+ ? any
76
+ : {
77
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
78
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
79
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
80
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
81
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
82
+ : never
83
+ : never
84
+ }
85
+ export type \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
86
+ \u662Fany<\u5BF9\u8C61> extends true
87
+ ? any
88
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
89
+ \u8054\u5408\u8F6C\u5143\u7EC4<
90
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
91
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
92
+ ? '\u53EF\u9009' extends keyof \u5BF9\u8C61[key]
93
+ ? \u5BF9\u8C61[key]['\u53EF\u9009'] extends 'false'
94
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
95
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | undefined
96
+ : never
97
+ : never
98
+ }>
99
+ >
100
+ >
101
+ export type \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
102
+ \u662Fany<\u5BF9\u8C61> extends true
103
+ ? any
104
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
105
+ \u8054\u5408\u8F6C\u5143\u7EC4<
106
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
107
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
108
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
109
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
110
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
111
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
112
+ : never
113
+ : never
114
+ }>
115
+ >
116
+ >
117
+ export type \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<X> = {
118
+ [key in keyof X]: undefined extends X[key] ? { [k in key]?: X[key] } : { [k in key]: X[key] }
119
+ }[keyof X]
120
+
121
+ type \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<Arr> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x & \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<xs> : never
122
+
123
+ type \u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X> = X extends any ? (a: (x: any) => X) => any : never
124
+ type \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<X> = (X extends any ? X : never) extends (a: infer A) => any ? A : never
125
+ type \u53D6\u6700\u540E\u4E00\u4E2A<X> = \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<\u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X>> extends (x: any) => infer A ? A : never
126
+ type \u8054\u5408\u8F6C\u5143\u7EC4<X> = [X] extends [never]
127
+ ? []
128
+ : \u53D6\u6700\u540E\u4E00\u4E2A<X> extends infer Last
129
+ ? [...\u8054\u5408\u8F6C\u5143\u7EC4<Exclude<X, Last>>, Last]
130
+ : never
72
131
  `;
73
132
 
74
133
  // src/bin/gen-table-type/index.ts
@@ -116,7 +175,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
116
175
  await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
117
176
  let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
118
177
  let \u4EE3\u7801 = `
119
- import { \u5206\u9875\u9009\u9879, \u6392\u5E8F\u9009\u9879, \u6761\u4EF6\u7EC4, \u7FFB\u8BD1\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A, \u865A\u62DF\u8868 } from '@lsby/net-core'
178
+ import { \u5206\u9875\u9009\u9879, \u6392\u5E8F\u9009\u9879, \u6761\u4EF6\u7EC4, \u7FFB\u8BD1\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0, \u865A\u62DF\u8868, \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0 } from '@lsby/net-core'
120
179
  import { z } from 'zod'
121
180
  import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}",
122
181
 
@@ -138,11 +197,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
138
197
  \u8DEF\u5F84: \u8DEF\u5F84
139
198
 
140
199
  \u6784\u9020\u53C2\u6570: \u5BFC\u5165 extends \u865A\u62DF\u8868<infer X, any, any, any, any, any> ? z.infer<X> : never
141
- \u5217\u7C7B\u578B: \u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>
142
200
 
143
- \u589E\u53C2\u6570_\u6570\u636E\u4EEC: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>[]
201
+ \u589E\u53C2\u6570_\u6570\u636E\u4EEC: \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[]
144
202
  \u5220\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
145
- \u6539\u53C2\u6570_\u65B0\u503C: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
203
+ \u6539\u53C2\u6570_\u65B0\u503C: Partial<\u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
146
204
  \u6539\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
147
205
  \u67E5\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
148
206
  \u67E5\u53C2\u6570_\u5206\u9875\u6761\u4EF6: \u5206\u9875\u9009\u9879
@@ -156,12 +214,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
156
214
  \u589E\u539F\u59CB\u6B63\u786E\u503C: {}
157
215
  \u5220\u539F\u59CB\u6B63\u786E\u503C: {}
158
216
  \u6539\u539F\u59CB\u6B63\u786E\u503C: {}
159
- \u67E5\u539F\u59CB\u6B63\u786E\u503C: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[]
217
+ \u67E5\u539F\u59CB\u6B63\u786E\u503C: \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[]
160
218
 
161
219
  \u589E\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u589E\u9519\u8BEF } | { status: 'success'; data:{} }
162
220
  \u5220\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u5220\u9519\u8BEF } | { status: 'success'; data:{} }
163
221
  \u6539\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u6539\u9519\u8BEF } | { status: 'success'; data:{} }
164
- \u67E5\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u67E5\u9519\u8BEF } | { status: 'success'; data: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[] }
222
+ \u67E5\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u67E5\u9519\u8BEF } | { status: 'success'; data: \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[] }
165
223
  }
166
224
  : never
167
225
  `;
@@ -71,9 +71,68 @@ export type \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<A> = A extends '\u5B57\u7
71
71
  : A extends '\u5E03\u5C14'
72
72
  ? boolean
73
73
  : never
74
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> = \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> }
75
- export type \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<\u5BF9\u8C61> =
76
- \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> | undefined }
74
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
75
+ \u662Fany<\u5BF9\u8C61> extends true
76
+ ? any
77
+ : { [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key] ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> : never }
78
+ export type \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
79
+ \u662Fany<\u5BF9\u8C61> extends true
80
+ ? any
81
+ : {
82
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
83
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
84
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
85
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
86
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
87
+ : never
88
+ : never
89
+ }
90
+ export type \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
91
+ \u662Fany<\u5BF9\u8C61> extends true
92
+ ? any
93
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
94
+ \u8054\u5408\u8F6C\u5143\u7EC4<
95
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
96
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
97
+ ? '\u53EF\u9009' extends keyof \u5BF9\u8C61[key]
98
+ ? \u5BF9\u8C61[key]['\u53EF\u9009'] extends 'false'
99
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
100
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | undefined
101
+ : never
102
+ : never
103
+ }>
104
+ >
105
+ >
106
+ export type \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<\u5BF9\u8C61> =
107
+ \u662Fany<\u5BF9\u8C61> extends true
108
+ ? any
109
+ : \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<
110
+ \u8054\u5408\u8F6C\u5143\u7EC4<
111
+ \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<{
112
+ [key in keyof \u5BF9\u8C61]: '\u7C7B\u578B' extends keyof \u5BF9\u8C61[key]
113
+ ? '\u53EF\u7A7A' extends keyof \u5BF9\u8C61[key]
114
+ ? \u5BF9\u8C61[key]['\u53EF\u7A7A'] extends 'false'
115
+ ? \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']>
116
+ : \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]['\u7C7B\u578B']> | null
117
+ : never
118
+ : never
119
+ }>
120
+ >
121
+ >
122
+ export type \u672A\u5B9A\u4E49\u5BF9\u8C61\u8F6C\u53EF\u9009\u5BF9\u8C61<X> = {
123
+ [key in keyof X]: undefined extends X[key] ? { [k in key]?: X[key] } : { [k in key]: X[key] }
124
+ }[keyof X]
125
+
126
+ type \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<Arr> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x & \u5F52\u7EA6\u6570\u7EC4\u5BF9\u8C61<xs> : never
127
+
128
+ type \u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X> = X extends any ? (a: (x: any) => X) => any : never
129
+ type \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<X> = (X extends any ? X : never) extends (a: infer A) => any ? A : never
130
+ type \u53D6\u6700\u540E\u4E00\u4E2A<X> = \u51FD\u6570\u8F6C\u6362\u6210\u4E0E<\u8054\u5408\u8F6C\u6362\u6210\u51FD\u6570<X>> extends (x: any) => infer A ? A : never
131
+ type \u8054\u5408\u8F6C\u5143\u7EC4<X> = [X] extends [never]
132
+ ? []
133
+ : \u53D6\u6700\u540E\u4E00\u4E2A<X> extends infer Last
134
+ ? [...\u8054\u5408\u8F6C\u5143\u7EC4<Exclude<X, Last>>, Last]
135
+ : never
77
136
  `;
78
137
 
79
138
  // src/bin/gen-table-type/index.ts
@@ -121,7 +180,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
121
180
  await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
122
181
  let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
123
182
  let \u4EE3\u7801 = `
124
- import { \u5206\u9875\u9009\u9879, \u6392\u5E8F\u9009\u9879, \u6761\u4EF6\u7EC4, \u7FFB\u8BD1\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A, \u865A\u62DF\u8868 } from '@lsby/net-core'
183
+ import { \u5206\u9875\u9009\u9879, \u6392\u5E8F\u9009\u9879, \u6761\u4EF6\u7EC4, \u7FFB\u8BD1\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0, \u865A\u62DF\u8868, \u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0 } from '@lsby/net-core'
125
184
  import { z } from 'zod'
126
185
  import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}",
127
186
 
@@ -143,11 +202,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
143
202
  \u8DEF\u5F84: \u8DEF\u5F84
144
203
 
145
204
  \u6784\u9020\u53C2\u6570: \u5BFC\u5165 extends \u865A\u62DF\u8868<infer X, any, any, any, any, any> ? z.infer<X> : never
146
- \u5217\u7C7B\u578B: \u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>
147
205
 
148
- \u589E\u53C2\u6570_\u6570\u636E\u4EEC: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>[]
206
+ \u589E\u53C2\u6570_\u6570\u636E\u4EEC: \u7FFB\u8BD1\u63D2\u5165\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[]
149
207
  \u5220\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
150
- \u6539\u53C2\u6570_\u65B0\u503C: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
208
+ \u6539\u53C2\u6570_\u65B0\u503C: Partial<\u7FFB\u8BD1\u4FEE\u6539\u503C\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
151
209
  \u6539\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
152
210
  \u67E5\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
153
211
  \u67E5\u53C2\u6570_\u5206\u9875\u6761\u4EF6: \u5206\u9875\u9009\u9879
@@ -161,12 +219,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
161
219
  \u589E\u539F\u59CB\u6B63\u786E\u503C: {}
162
220
  \u5220\u539F\u59CB\u6B63\u786E\u503C: {}
163
221
  \u6539\u539F\u59CB\u6B63\u786E\u503C: {}
164
- \u67E5\u539F\u59CB\u6B63\u786E\u503C: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[]
222
+ \u67E5\u539F\u59CB\u6B63\u786E\u503C: \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[]
165
223
 
166
224
  \u589E\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u589E\u9519\u8BEF } | { status: 'success'; data:{} }
167
225
  \u5220\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u5220\u9519\u8BEF } | { status: 'success'; data:{} }
168
226
  \u6539\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u6539\u9519\u8BEF } | { status: 'success'; data:{} }
169
- \u67E5\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u67E5\u9519\u8BEF } | { status: 'success'; data: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[] }
227
+ \u67E5\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u67E5\u9519\u8BEF } | { status: 'success'; data: \u7FFB\u8BD1\u67E5\u8BE2\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>[] }
170
228
  }
171
229
  : never
172
230
  `;
@@ -31,17 +31,26 @@ var WebSocket\u7BA1\u7406\u8005 = class {
31
31
  constructor(\u8FDE\u63A5\u8868) {
32
32
  this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
33
33
  }
34
- async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
35
- this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
34
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
35
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
36
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
36
37
  }
37
- async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
38
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(\u8BF7\u6C42id) ? true : false;
38
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
39
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
39
40
  }
40
- async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
41
- return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] ?? null;
41
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
42
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
43
+ return;
44
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
45
+ }
46
+ async \u83B7\u5F97\u53E5\u67C4(id) {
47
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
42
48
  }
43
49
  async \u5220\u9664\u8FDE\u63A5(id) {
50
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
51
+ await \u6E05\u7406\u51FD\u6570?.();
44
52
  delete this.\u8FDE\u63A5\u8868[id];
53
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
45
54
  }
46
55
  };
47
56