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

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 (56) hide show
  1. package/dist/cjs/help/help.d.cts +10 -2
  2. package/dist/cjs/index.cjs +54 -15
  3. package/dist/cjs/index.d.cts +2 -2
  4. package/dist/cjs/interface/interface-base.d.cts +1 -1
  5. package/dist/cjs/interface/interface-logic.cjs +41 -15
  6. package/dist/cjs/interface/interface-logic.d.cts +1 -1
  7. package/dist/cjs/interface/interface-result.d.cts +1 -1
  8. package/dist/cjs/{interface-base-CFXGjV5S.d.cts → interface-base-CGVaOwta.d.cts} +25 -13
  9. package/dist/cjs/plugin/extend/chinese-path.d.cts +1 -1
  10. package/dist/cjs/plugin/extend/custom-data.d.cts +1 -1
  11. package/dist/cjs/plugin/extend/json.d.cts +1 -1
  12. package/dist/cjs/plugin/extend/log-headers.d.cts +1 -1
  13. package/dist/cjs/plugin/extend/send-file-plugin.d.cts +1 -1
  14. package/dist/cjs/plugin/extend/urlencoded.d.cts +1 -1
  15. package/dist/cjs/plugin/extend/web-socket.d.cts +1 -1
  16. package/dist/cjs/plugin/plug.d.cts +1 -1
  17. package/dist/cjs/server/server.cjs +15 -2
  18. package/dist/cjs/server/server.d.cts +1 -1
  19. package/dist/cjs/wrapper/common-wrapper.d.cts +2 -2
  20. package/dist/cjs/wrapper/deferred-result-wrapper.d.cts +2 -2
  21. package/dist/esm/chunk-BD3TBYRH.js +73 -0
  22. package/dist/esm/{chunk-3QNWAAXS.js → chunk-PMVV6QW4.js} +15 -2
  23. package/dist/esm/help/help.d.ts +10 -2
  24. package/dist/esm/index.d.ts +2 -2
  25. package/dist/esm/index.js +20 -18
  26. package/dist/esm/interface/interface-base.d.ts +1 -1
  27. package/dist/esm/interface/interface-logic.d.ts +1 -1
  28. package/dist/esm/interface/interface-logic.js +5 -3
  29. package/dist/esm/interface/interface-result.d.ts +1 -1
  30. package/dist/esm/{interface-base-D-Zxt7-a.d.ts → interface-base-WKhEdTgv.d.ts} +25 -13
  31. package/dist/esm/plugin/extend/chinese-path.d.ts +1 -1
  32. package/dist/esm/plugin/extend/custom-data.d.ts +1 -1
  33. package/dist/esm/plugin/extend/custom-data.js +2 -2
  34. package/dist/esm/plugin/extend/json.d.ts +1 -1
  35. package/dist/esm/plugin/extend/json.js +2 -2
  36. package/dist/esm/plugin/extend/log-headers.d.ts +1 -1
  37. package/dist/esm/plugin/extend/send-file-plugin.d.ts +1 -1
  38. package/dist/esm/plugin/extend/urlencoded.d.ts +1 -1
  39. package/dist/esm/plugin/extend/urlencoded.js +2 -2
  40. package/dist/esm/plugin/extend/web-socket.d.ts +1 -1
  41. package/dist/esm/plugin/extend/web-socket.js +2 -2
  42. package/dist/esm/plugin/plug.d.ts +1 -1
  43. package/dist/esm/server/server.d.ts +1 -1
  44. package/dist/esm/server/server.js +1 -1
  45. package/dist/esm/wrapper/common-wrapper.d.ts +2 -2
  46. package/dist/esm/wrapper/common-wrapper.js +2 -2
  47. package/dist/esm/wrapper/deferred-result-wrapper.d.ts +2 -2
  48. package/dist/esm/wrapper/deferred-result-wrapper.js +2 -2
  49. package/package.json +1 -1
  50. package/dist/esm/chunk-22TPKHDW.js +0 -48
  51. package/dist/esm/{chunk-3BJQEQB7.js → chunk-47MYYUQZ.js} +3 -3
  52. package/dist/esm/{chunk-2LEUWNVK.js → chunk-BEFZ7IFH.js} +3 -3
  53. package/dist/esm/{chunk-5NCZDEOO.js → chunk-GKEZ4UTO.js} +3 -3
  54. package/dist/esm/{chunk-GSOZVROO.js → chunk-JB4HVEXB.js} +3 -3
  55. package/dist/esm/{chunk-6DTPJQGT.js → chunk-TNQ5YSCZ.js} +3 -3
  56. package/dist/esm/{chunk-DRLWY7PC.js → chunk-XPC3O5HH.js} +3 -3
@@ -1,11 +1,19 @@
1
1
  declare function 构造元组<T extends any[]>(args: [...T]): T;
2
2
  declare function 构造对象<K extends string, V>(key: K, value: V): Record<K, V>;
3
3
  type 去除只读<T> = T extends readonly [...infer U] ? U : never;
4
- type 类型相等<A, B> = A extends B ? (B extends A ? true : false) : false;
4
+ type 类型相等<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
5
5
  declare function 截断字符串(内容: string): string;
6
6
  declare function 递归截断字符串(数据: any): any;
7
7
  type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer U) => any ? U : never;
8
8
  type LastUnion<T> = UnionToIntersection<T extends any ? (x: T) => any : never> extends (x: infer L) => any ? L : never;
9
9
  type 联合转元组<T, Last = LastUnion<T>> = [T] extends [never] ? [] : [...联合转元组<Exclude<T, Last>>, Last];
10
+ type 数组包含<T extends readonly any[], U> = T extends [infer 第一个, ...infer 剩余] ? 类型相等<第一个, U> extends true ? true : 数组包含<剩余, U> : false;
11
+ type 对象去重<T> = {
12
+ [K in keyof T]: T[K];
13
+ };
14
+ type 数组去重<T extends readonly any[], 结果 extends readonly any[] = []> = T extends [
15
+ infer 第一个,
16
+ ...infer 剩余
17
+ ] ? 数组包含<结果, 第一个> extends true ? 数组去重<剩余, 结果> : 数组去重<剩余, [...结果, 第一个]> : 结果;
10
18
 
11
- export { type 去除只读, 截断字符串, 构造元组, 构造对象, type 类型相等, type 联合转元组, 递归截断字符串 };
19
+ export { type 去除只读, type 对象去重, 截断字符串, type 数组包含, type 数组去重, 构造元组, 构造对象, type 类型相等, type 联合转元组, 递归截断字符串 };
@@ -44,6 +44,7 @@ __export(src_exports, {
44
44
  \u63A5\u53E3\u6D4B\u8BD5: () => \u63A5\u53E3\u6D4B\u8BD5,
45
45
  \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668: () => \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668,
46
46
  \u63A5\u53E3\u903B\u8F91: () => \u63A5\u53E3\u903B\u8F91,
47
+ \u63A5\u53E3\u903B\u8F91Base: () => \u63A5\u53E3\u903B\u8F91Base,
47
48
  \u63D2\u4EF6: () => \u63D2\u4EF6,
48
49
  \u670D\u52A1\u5668: () => \u670D\u52A1\u5668,
49
50
  \u6784\u9020\u5143\u7EC4: () => \u6784\u9020\u5143\u7EC4,
@@ -116,21 +117,27 @@ var \u63A5\u53E3 = class {
116
117
 
117
118
  // src/interface/interface-logic.ts
118
119
  var import_ts_fp_data = require("@lsby/ts-fp-data");
119
- var \u63A5\u53E3\u903B\u8F91 = class _\u63A5\u53E3\u903B\u8F91 {
120
+ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
121
+ constructor(\u6700\u540E\u63A5\u53E3) {
122
+ this.\u6700\u540E\u63A5\u53E3 = \u6700\u540E\u63A5\u53E3;
123
+ }
120
124
  static \u7A7A\u903B\u8F91() {
121
- return _\u63A5\u53E3\u903B\u8F91.\u6784\u9020([], async () => new import_ts_fp_data.Right({}));
125
+ return _\u63A5\u53E3\u903B\u8F91Base.\u6784\u9020([], async () => new import_ts_fp_data.Right({}));
122
126
  }
123
- static \u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0) {
124
- let c = new class extends _\u63A5\u53E3\u903B\u8F91 {
127
+ static \u5B8C\u6574\u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0, \u6700\u540E\u63A5\u53E3\u903B\u8F91) {
128
+ let c = new class extends _\u63A5\u53E3\u903B\u8F91Base {
125
129
  \u83B7\u5F97\u63D2\u4EF6\u4EEC() {
126
130
  return \u63D2\u4EF6\u4EEC;
127
131
  }
128
132
  \u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
129
133
  return \u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
130
134
  }
131
- }();
135
+ }(\u6700\u540E\u63A5\u53E3\u903B\u8F91);
132
136
  return c;
133
137
  }
138
+ static \u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0) {
139
+ return this.\u5B8C\u6574\u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0, null);
140
+ }
134
141
  async \u8FD0\u884C(req, res, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570) {
135
142
  let log = \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570.log.extend("\u63A5\u53E3\u903B\u8F91");
136
143
  let \u63D2\u4EF6\u4EEC = this.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
@@ -146,16 +153,34 @@ var \u63A5\u53E3\u903B\u8F91 = class _\u63A5\u53E3\u903B\u8F91 {
146
153
  await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u5B9E\u73B0...");
147
154
  let \u5B9E\u73B0\u7ED3\u679C = await this.\u5B9E\u73B0(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570);
148
155
  await log.debug("\u63A5\u53E3\u5B9E\u73B0\u6267\u884C\u5B8C\u6BD5");
149
- return { ...\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u5B9E\u73B0\u7ED3\u679C };
156
+ return \u5B9E\u73B0\u7ED3\u679C.map((a) => ({ ...\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...a }));
150
157
  }
151
158
  \u6DF7\u5408(\u8F93\u5165) {
152
- let self = this;
153
- return _\u63A5\u53E3\u903B\u8F91.\u6784\u9020([...this.\u83B7\u5F97\u63D2\u4EF6\u4EEC(), ...\u8F93\u5165.\u83B7\u5F97\u63D2\u4EF6\u4EEC()], async (\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) => {
154
- let c = await self.\u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
155
- if (c.isLeft())
156
- return c;
157
- return await \u8F93\u5165.\u5B9E\u73B0(\u53C2\u6570, { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...c.assertRight().getRight() }, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
158
- });
159
+ return _\u63A5\u53E3\u903B\u8F91Base.\u5B8C\u6574\u6784\u9020(
160
+ [...this.\u83B7\u5F97\u63D2\u4EF6\u4EEC(), ...\u8F93\u5165.\u83B7\u5F97\u63D2\u4EF6\u4EEC()],
161
+ async (\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) => {
162
+ let \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C = await this.\u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
163
+ if (\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.isLeft())
164
+ return \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C;
165
+ let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight() };
166
+ let \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C = await \u8F93\u5165.\u5B9E\u73B0(
167
+ \u53C2\u6570,
168
+ { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight() },
169
+ \u8BF7\u6C42\u9644\u52A0\u53C2\u6570
170
+ );
171
+ let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => ({ ...\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, ...a }));
172
+ return \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C;
173
+ },
174
+ \u8F93\u5165
175
+ );
176
+ }
177
+ \u83B7\u5F97\u6700\u540E\u63A5\u53E3() {
178
+ return this.\u6700\u540E\u63A5\u53E3;
179
+ }
180
+ };
181
+ var \u63A5\u53E3\u903B\u8F91 = class extends \u63A5\u53E3\u903B\u8F91Base {
182
+ constructor() {
183
+ super(null);
159
184
  }
160
185
  };
161
186
 
@@ -624,8 +649,21 @@ var \u670D\u52A1\u5668 = class {
624
649
  await log.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
625
650
  let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F912.\u8FD0\u884C(req, res, {}, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
626
651
  await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
627
- let \u6700\u7EC8\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
628
- await log.debug("\u8FD4\u56DE\u6570\u636E: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6700\u7EC8\u7ED3\u679C)));
652
+ let \u6700\u7EC8\u7ED3\u679C;
653
+ let \u8F6C\u6362\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
654
+ let \u9519\u8BEF\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
655
+ let \u6B63\u786E\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
656
+ if (\u9519\u8BEF\u7ED3\u679C.success === true) {
657
+ \u6700\u7EC8\u7ED3\u679C = \u9519\u8BEF\u7ED3\u679C.data;
658
+ } else if (\u6B63\u786E\u7ED3\u679C.success === true) {
659
+ \u6700\u7EC8\u7ED3\u679C = \u6B63\u786E\u7ED3\u679C.data;
660
+ } else {
661
+ await log.error("\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C");
662
+ await log.error("\u5BF9\u4E8E\u9519\u8BEF\u7ED3\u679C: %o", \u9519\u8BEF\u7ED3\u679C.error);
663
+ await log.error("\u5BF9\u4E8E\u6B63\u786E\u7ED3\u679C: %o", \u6B63\u786E\u7ED3\u679C.error);
664
+ throw new Error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8F6C\u6362\u7ED3\u679C))}`);
665
+ }
666
+ await log.debug("\u6700\u7EC8\u7ED3\u679C: %o", \u6700\u7EC8\u7ED3\u679C);
629
667
  res.send(\u6700\u7EC8\u7ED3\u679C);
630
668
  await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
631
669
  }
@@ -712,6 +750,7 @@ var \u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5 = c
712
750
  \u63A5\u53E3\u6D4B\u8BD5,
713
751
  \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668,
714
752
  \u63A5\u53E3\u903B\u8F91,
753
+ \u63A5\u53E3\u903B\u8F91Base,
715
754
  \u63D2\u4EF6,
716
755
  \u670D\u52A1\u5668,
717
756
  \u6784\u9020\u5143\u7EC4,
@@ -1,5 +1,5 @@
1
- export { 去除只读, 截断字符串, 构造元组, 构造对象, 类型相等, 联合转元组, 递归截断字符串 } from './help/help.cjs';
2
- export { 任 as 任意接口, s as 任意接口结果转换器, l as 任意接口逻辑, u as 任意插件, 包 as 包装插件项, 取 as 取Task插件内部类型, w as 取Task插件类型, x as 取插件内部ts类型, 可 as 可调用接口逻辑, 合 as 合并插件结果, t as 常用延时直接形式转换器, 常 as 常用形式转换器, b as 接口, a as 接口方法类型, r as 接口结果转换器, 接 as 接口路径类型, k as 接口逻辑, i as 接口逻辑正确类型, h as 接口逻辑错误类型, j as 接口逻辑附加参数类型, 插 as 插件, v as 插件项类型, 服 as 服务器, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, 获 as 获得接口路径类型, m as 获得接口逻辑插件类型, p as 获得接口逻辑正确类型, d as 获得接口逻辑类型, o as 获得接口逻辑错误类型, n as 获得接口逻辑附加参数类型, e as 获得接口错误形式, q as 计算接口逻辑正确结果, as 计算接口逻辑错误结果, 请 as 请求附加参数类型 } from './interface-base-CFXGjV5S.cjs';
1
+ export { 去除只读, 对象去重, 截断字符串, 数组包含, 数组去重, 构造元组, 构造对象, 类型相等, 联合转元组, 递归截断字符串 } from './help/help.cjs';
2
+ export { 任 as 任意接口, v as 任意接口结果转换器, m as 任意接口逻辑, x as 任意插件, 兼 as 兼容空对象, 包 as 包装插件项, 取 as 取Task插件内部类型, z as 取Task插件类型, A as 取插件内部ts类型, 可 as 可调用接口逻辑, 合 as 合并插件结果, w as 常用延时直接形式转换器, 常 as 常用形式转换器, b as 接口, a as 接口方法类型, u as 接口结果转换器, 接 as 接口路径类型, l as 接口逻辑, k as 接口逻辑Base, i as 接口逻辑正确类型, h as 接口逻辑错误类型, j as 接口逻辑附加参数类型, 插 as 插件, y as 插件项类型, 服 as 服务器, 空 as 空对象, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, 获 as 获得接口路径类型, n as 获得接口逻辑插件类型, r as 获得接口逻辑最后接口类型, q as 获得接口逻辑正确类型, d as 获得接口逻辑类型, p as 获得接口逻辑错误类型, o as 获得接口逻辑附加参数类型, e as 获得接口错误形式, as 计算接口逻辑参数, t as 计算接口逻辑正确结果, s as 计算接口逻辑错误结果, 请 as 请求附加参数类型 } from './interface-base-CGVaOwta.cjs';
3
3
  export { 接口测试 } from './interface/interface-test.cjs';
4
4
  export { 中文路径支持插件 } from './plugin/extend/chinese-path.cjs';
5
5
  export { 自定义数据插件 } from './plugin/extend/custom-data.cjs';
@@ -1,5 +1,5 @@
1
1
  import 'zod';
2
- export { 任 as 任意接口, b as 接口, a as 接口方法类型, 接 as 接口路径类型, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, 获 as 获得接口路径类型, d as 获得接口逻辑类型, e as 获得接口错误形式 } from '../interface-base-CFXGjV5S.cjs';
2
+ export { 任 as 任意接口, b as 接口, a as 接口方法类型, 接 as 接口路径类型, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, 获 as 获得接口路径类型, d as 获得接口逻辑类型, e as 获得接口错误形式 } from '../interface-base-CGVaOwta.cjs';
3
3
  import '@lsby/ts-fp-data';
4
4
  import 'express';
5
5
  import '../help/help.cjs';
@@ -20,25 +20,32 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/interface/interface-logic.ts
21
21
  var interface_logic_exports = {};
22
22
  __export(interface_logic_exports, {
23
- \u63A5\u53E3\u903B\u8F91: () => \u63A5\u53E3\u903B\u8F91
23
+ \u63A5\u53E3\u903B\u8F91: () => \u63A5\u53E3\u903B\u8F91,
24
+ \u63A5\u53E3\u903B\u8F91Base: () => \u63A5\u53E3\u903B\u8F91Base
24
25
  });
25
26
  module.exports = __toCommonJS(interface_logic_exports);
26
27
  var import_ts_fp_data = require("@lsby/ts-fp-data");
27
- var \u63A5\u53E3\u903B\u8F91 = class _\u63A5\u53E3\u903B\u8F91 {
28
+ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
29
+ constructor(\u6700\u540E\u63A5\u53E3) {
30
+ this.\u6700\u540E\u63A5\u53E3 = \u6700\u540E\u63A5\u53E3;
31
+ }
28
32
  static \u7A7A\u903B\u8F91() {
29
- return _\u63A5\u53E3\u903B\u8F91.\u6784\u9020([], async () => new import_ts_fp_data.Right({}));
33
+ return _\u63A5\u53E3\u903B\u8F91Base.\u6784\u9020([], async () => new import_ts_fp_data.Right({}));
30
34
  }
31
- static \u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0) {
32
- let c = new class extends _\u63A5\u53E3\u903B\u8F91 {
35
+ static \u5B8C\u6574\u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0, \u6700\u540E\u63A5\u53E3\u903B\u8F91) {
36
+ let c = new class extends _\u63A5\u53E3\u903B\u8F91Base {
33
37
  \u83B7\u5F97\u63D2\u4EF6\u4EEC() {
34
38
  return \u63D2\u4EF6\u4EEC;
35
39
  }
36
40
  \u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
37
41
  return \u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
38
42
  }
39
- }();
43
+ }(\u6700\u540E\u63A5\u53E3\u903B\u8F91);
40
44
  return c;
41
45
  }
46
+ static \u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0) {
47
+ return this.\u5B8C\u6574\u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0, null);
48
+ }
42
49
  async \u8FD0\u884C(req, res, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570) {
43
50
  let log = \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570.log.extend("\u63A5\u53E3\u903B\u8F91");
44
51
  let \u63D2\u4EF6\u4EEC = this.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
@@ -54,19 +61,38 @@ var \u63A5\u53E3\u903B\u8F91 = class _\u63A5\u53E3\u903B\u8F91 {
54
61
  await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u5B9E\u73B0...");
55
62
  let \u5B9E\u73B0\u7ED3\u679C = await this.\u5B9E\u73B0(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570);
56
63
  await log.debug("\u63A5\u53E3\u5B9E\u73B0\u6267\u884C\u5B8C\u6BD5");
57
- return { ...\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u5B9E\u73B0\u7ED3\u679C };
64
+ return \u5B9E\u73B0\u7ED3\u679C.map((a) => ({ ...\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...a }));
58
65
  }
59
66
  \u6DF7\u5408(\u8F93\u5165) {
60
- let self = this;
61
- return _\u63A5\u53E3\u903B\u8F91.\u6784\u9020([...this.\u83B7\u5F97\u63D2\u4EF6\u4EEC(), ...\u8F93\u5165.\u83B7\u5F97\u63D2\u4EF6\u4EEC()], async (\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) => {
62
- let c = await self.\u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
63
- if (c.isLeft())
64
- return c;
65
- return await \u8F93\u5165.\u5B9E\u73B0(\u53C2\u6570, { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...c.assertRight().getRight() }, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
66
- });
67
+ return _\u63A5\u53E3\u903B\u8F91Base.\u5B8C\u6574\u6784\u9020(
68
+ [...this.\u83B7\u5F97\u63D2\u4EF6\u4EEC(), ...\u8F93\u5165.\u83B7\u5F97\u63D2\u4EF6\u4EEC()],
69
+ async (\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) => {
70
+ let \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C = await this.\u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
71
+ if (\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.isLeft())
72
+ return \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C;
73
+ let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight() };
74
+ let \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C = await \u8F93\u5165.\u5B9E\u73B0(
75
+ \u53C2\u6570,
76
+ { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight() },
77
+ \u8BF7\u6C42\u9644\u52A0\u53C2\u6570
78
+ );
79
+ let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => ({ ...\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, ...a }));
80
+ return \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C;
81
+ },
82
+ \u8F93\u5165
83
+ );
84
+ }
85
+ \u83B7\u5F97\u6700\u540E\u63A5\u53E3() {
86
+ return this.\u6700\u540E\u63A5\u53E3;
87
+ }
88
+ };
89
+ var \u63A5\u53E3\u903B\u8F91 = class extends \u63A5\u53E3\u903B\u8F91Base {
90
+ constructor() {
91
+ super(null);
67
92
  }
68
93
  };
69
94
  // Annotate the CommonJS export names for ESM import in node:
70
95
  0 && (module.exports = {
71
- \u63A5\u53E3\u903B\u8F91
96
+ \u63A5\u53E3\u903B\u8F91,
97
+ \u63A5\u53E3\u903B\u8F91Base
72
98
  });
@@ -1,7 +1,7 @@
1
1
  import '@lsby/ts-fp-data';
2
2
  import 'express';
3
3
  import '../help/help.cjs';
4
- export { l as 任意接口逻辑, 可 as 可调用接口逻辑, k as 接口逻辑, i as 接口逻辑正确类型, h as 接口逻辑错误类型, j as 接口逻辑附加参数类型, m as 获得接口逻辑插件类型, p as 获得接口逻辑正确类型, o as 获得接口逻辑错误类型, n as 获得接口逻辑附加参数类型, q as 计算接口逻辑正确结果, as 计算接口逻辑错误结果 } from '../interface-base-CFXGjV5S.cjs';
4
+ export { m as 任意接口逻辑, 兼 as 兼容空对象, 可 as 可调用接口逻辑, l as 接口逻辑, k as 接口逻辑Base, i as 接口逻辑正确类型, h as 接口逻辑错误类型, j as 接口逻辑附加参数类型, as 空对象, n as 获得接口逻辑插件类型, r as 获得接口逻辑最后接口类型, q as 获得接口逻辑正确类型, p as 获得接口逻辑错误类型, o as 获得接口逻辑附加参数类型, as 计算接口逻辑参数, t as 计算接口逻辑正确结果, s as 计算接口逻辑错误结果 } from '../interface-base-CGVaOwta.cjs';
5
5
  import 'zod';
6
6
  import '@lsby/ts-log';
7
7
  import 'node:http';
@@ -1,5 +1,5 @@
1
1
  import '@lsby/ts-fp-data';
2
- export { s as 任意接口结果转换器, t as 常用延时直接形式转换器, 常 as 常用形式转换器, r as 接口结果转换器 } from '../interface-base-CFXGjV5S.cjs';
2
+ export { v as 任意接口结果转换器, w as 常用延时直接形式转换器, 常 as 常用形式转换器, u as 接口结果转换器 } from '../interface-base-CGVaOwta.cjs';
3
3
  import 'zod';
4
4
  import 'express';
5
5
  import '../help/help.cjs';
@@ -49,6 +49,8 @@ type 取Task插件类型<A> = A extends Task<infer x> ? x : never;
49
49
  type 取插件内部ts类型<A> = A extends 插件<infer x> ? z.infer<x> : never;
50
50
  type 合并插件结果<Arr extends Array<插件项类型>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<插件项类型> ? z.infer<取Task插件内部类型<插件项>> & 合并插件结果<xs> : {} : {} : {};
51
51
 
52
+ type 空对象 = Record<any, never>;
53
+ type 兼容空对象 = Record<any, unknown>;
52
54
  type 接口逻辑错误类型 = string | never;
53
55
  type 接口逻辑正确类型 = Record<string, any>;
54
56
  type 接口逻辑附加参数类型 = Record<string, any>;
@@ -81,24 +83,34 @@ type 接口逻辑附加参数类型 = Record<string, any>;
81
83
  *
82
84
  * ### 其他组合方法用到再写
83
85
  */
84
- declare abstract class 接口逻辑<插件类型 extends 插件项类型[], 逻辑附加参数类型 extends 接口逻辑附加参数类型, 错误类型 extends 接口逻辑错误类型, 返回类型 extends 接口逻辑正确类型> {
85
- static 空逻辑(): 接口逻辑<[], {}, never, {}>;
86
- static 构造<插件类型 extends 插件项类型[], 逻辑附加参数类型 extends 接口逻辑附加参数类型, 错误类型 extends 接口逻辑错误类型, 返回类型 extends 接口逻辑正确类型>(插件们: [...插件类型], 实现: (参数: 合并插件结果<插件类型>, 逻辑附加参数: 逻辑附加参数类型, 请求附加参数: 请求附加参数类型) => Promise<Either<错误类型, 返回类型>>): 接口逻辑<插件类型, 逻辑附加参数类型, 错误类型, 返回类型>;
87
- protected readonly __类型保持符号?: [插件类型, 逻辑附加参数类型, 错误类型, 返回类型];
86
+ declare abstract class 接口逻辑Base<插件类型 extends 插件项类型[], in 逻辑附加参数类型 extends 接口逻辑附加参数类型, 错误类型 extends 接口逻辑错误类型, 返回类型 extends 接口逻辑正确类型, 最后接口类型 extends 任意接口逻辑 | null = null> {
87
+ private 最后接口;
88
+ static 空逻辑(): 接口逻辑Base<[], 空对象, never, 兼容空对象, null>;
89
+ static 完整构造<插件类型 extends 插件项类型[], 逻辑附加参数类型 extends 接口逻辑附加参数类型, 错误类型 extends 接口逻辑错误类型, 返回类型 extends 接口逻辑正确类型, 最后接口类型 extends 任意接口逻辑 | null>(插件们: [...插件类型], 实现: (参数: 合并插件结果<插件类型>, 逻辑附加参数: 逻辑附加参数类型, 请求附加参数: 请求附加参数类型) => Promise<Either<错误类型, 返回类型>>, 最后接口逻辑: 最后接口类型): 接口逻辑Base<插件类型, 逻辑附加参数类型, 错误类型, 返回类型, 最后接口类型>;
90
+ static 构造<插件类型 extends 插件项类型[], 逻辑附加参数类型 extends 接口逻辑附加参数类型, 错误类型 extends 接口逻辑错误类型, 返回类型 extends 接口逻辑正确类型>(插件们: [...插件类型], 实现: (参数: 合并插件结果<插件类型>, 逻辑附加参数: 逻辑附加参数类型, 请求附加参数: 请求附加参数类型) => Promise<Either<错误类型, 返回类型>>): 接口逻辑Base<插件类型, 逻辑附加参数类型, 错误类型, 返回类型, null>;
91
+ protected readonly __类型保持符号_协变?: [插件类型, 错误类型, 返回类型];
92
+ protected readonly __类型保持符号_逆变?: (a: 逻辑附加参数类型) => void;
93
+ constructor(最后接口: 最后接口类型);
88
94
  abstract 获得插件们(): [...插件类型];
89
95
  abstract 实现(参数: 合并插件结果<插件类型>, 逻辑附加参数: 逻辑附加参数类型, 请求附加参数: 请求附加参数类型): Promise<Either<错误类型, 返回类型>>;
90
96
  运行(req: Request, res: Response, 传入的逻辑附加参数: 逻辑附加参数类型, 传入的插件附加参数: 请求附加参数类型): Promise<Either<错误类型, 返回类型>>;
91
- 混合<输入的插件类型 extends 插件项类型[], 输入的错误类型 extends 接口逻辑错误类型, 输入的返回类型 extends 接口逻辑正确类型>(输入: 接口逻辑<输入的插件类型, 返回类型, 输入的错误类型, 输入的返回类型>): 接口逻辑<[
97
+ 混合<输入的插件类型 extends 插件项类型[], 输入的错误类型 extends 接口逻辑错误类型, 输入的返回类型 extends 接口逻辑正确类型, 输入的最后接口逻辑类型 extends 任意接口逻辑 | null>(输入: 接口逻辑Base<输入的插件类型, 返回类型, 输入的错误类型, 输入的返回类型, 输入的最后接口逻辑类型>): 接口逻辑Base<[
92
98
  ...插件类型,
93
99
  ...输入的插件类型
94
- ], 逻辑附加参数类型, 错误类型 | 输入的错误类型, 返回类型 & 输入的返回类型>;
100
+ ], 逻辑附加参数类型, 错误类型 | 输入的错误类型, 返回类型 & 输入的返回类型, typeof 输入>;
101
+ 获得最后接口(): 最后接口类型;
95
102
  }
96
- type 任意接口逻辑 = 接口逻辑<any, any, any, any>;
97
- type 可调用接口逻辑 = 接口逻辑<any, Record<string, never>, any, any>;
98
- type 获得接口逻辑插件类型<A> = A extends 接口逻辑<infer X, any, any, any> ? X : never;
99
- type 获得接口逻辑附加参数类型<A> = A extends 接口逻辑<any, infer X, any, any> ? X : never;
100
- type 获得接口逻辑错误类型<A> = A extends 接口逻辑<any, any, infer X, any> ? X : never;
101
- type 获得接口逻辑正确类型<A> = A extends 接口逻辑<any, any, any, infer X> ? X : never;
103
+ declare abstract class 接口逻辑<插件类型 extends 插件项类型[], 逻辑附加参数类型 extends 接口逻辑附加参数类型, 错误类型 extends 接口逻辑错误类型, 返回类型 extends 接口逻辑正确类型> extends 接口逻辑Base<插件类型, 逻辑附加参数类型, 错误类型, 返回类型, null> {
104
+ constructor();
105
+ }
106
+ type 任意接口逻辑 = 接口逻辑Base<any, any, any, any, any>;
107
+ type 可调用接口逻辑 = 接口逻辑Base<any, 空对象, any, any, any>;
108
+ type 获得接口逻辑插件类型<A> = A extends 接口逻辑Base<infer X, any, any, any, any> ? X : never;
109
+ type 获得接口逻辑附加参数类型<A> = A extends 接口逻辑Base<any, infer X, any, any, any> ? X : never;
110
+ type 获得接口逻辑错误类型<A> = A extends 接口逻辑Base<any, any, infer X, any, any> ? X : never;
111
+ type 获得接口逻辑正确类型<A> = A extends 接口逻辑Base<any, any, any, infer X, any> ? X : never;
112
+ type 获得接口逻辑最后接口类型<A> = A extends 接口逻辑Base<any, any, any, any, infer X> ? X : never;
113
+ type 计算接口逻辑参数<接口逻辑> = 合并插件结果<获得接口逻辑插件类型<接口逻辑>>;
102
114
  type 计算接口逻辑错误结果<接口逻辑> = _____<获得接口逻辑错误类型<接口逻辑>>;
103
115
  type 计算接口逻辑正确结果<接口逻辑> = {
104
116
  [k in keyof 获得接口逻辑正确类型<接口逻辑>]: 获得接口逻辑正确类型<接口逻辑>[k];
@@ -173,4 +185,4 @@ type 获得接口错误形式<A> = A extends 接口<any, any, any, infer X, any,
173
185
  type 获得接口正确形式<A> = A extends 接口<any, any, any, any, infer X, any> ? z.infer<X> : never;
174
186
  type 获得接口结果转换器类型<A> = A extends 接口<any, any, any, any, any, infer X> ? X : never;
175
187
 
176
- export { type 接口方法类型 as a, 接口 as b, type 获得接口方法类型 as c, type 获得接口逻辑类型 as d, type 获得接口错误形式 as e, type 获得接口正确形式 as f, type 获得接口结果转换器类型 as g, type 接口逻辑错误类型 as h, type 接口逻辑正确类型 as i, type 接口逻辑附加参数类型 as j, 接口逻辑 as k, type 任意接口逻辑 as l, type 获得接口逻辑插件类型 as m, type 获得接口逻辑附加参数类型 as n, type 获得接口逻辑错误类型 as o, type 获得接口逻辑正确类型 as p, type 计算接口逻辑正确结果 as q, 接口结果转换器 as r, type 任意接口结果转换器 as s, 常用延时直接形式转换器 as t, type 任意插件 as u, type 插件项类型 as v, type 取Task插件类型 as w, type 取插件内部ts类型 as x, type 任意接口 as 任, type 包装插件项 as 包, type 取Task插件内部类型 as 取, type 可调用接口逻辑 as 可, type 合并插件结果 as 合, 常用形式转换器 as 常, type 接口路径类型 as 接, 插件 as 插, 服务器 as 服, type 获得接口路径类型 as 获, type 计算接口逻辑错误结果 as 计, type 请求附加参数类型 as 请 };
188
+ export { type 取插件内部ts类型 as A, type 接口方法类型 as a, 接口 as b, type 获得接口方法类型 as c, type 获得接口逻辑类型 as d, type 获得接口错误形式 as e, type 获得接口正确形式 as f, type 获得接口结果转换器类型 as g, type 接口逻辑错误类型 as h, type 接口逻辑正确类型 as i, type 接口逻辑附加参数类型 as j, 接口逻辑Base as k, 接口逻辑 as l, type 任意接口逻辑 as m, type 获得接口逻辑插件类型 as n, type 获得接口逻辑附加参数类型 as o, type 获得接口逻辑错误类型 as p, type 获得接口逻辑正确类型 as q, type 获得接口逻辑最后接口类型 as r, type 计算接口逻辑错误结果 as s, type 计算接口逻辑正确结果 as t, 接口结果转换器 as u, type 任意接口结果转换器 as v, 常用延时直接形式转换器 as w, type 任意插件 as x, type 插件项类型 as y, type 取Task插件类型 as z, type 任意接口 as 任, type 兼容空对象 as 兼, type 包装插件项 as 包, type 取Task插件内部类型 as 取, type 可调用接口逻辑 as 可, type 合并插件结果 as 合, 常用形式转换器 as 常, type 接口路径类型 as 接, 插件 as 插, 服务器 as 服, type 空对象 as 空, type 获得接口路径类型 as 获, type 计算接口逻辑参数 as 计, type 请求附加参数类型 as 请 };
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { 插 as __ } from '../../interface-base-CFXGjV5S.cjs';
2
+ import { 插 as __ } from '../../interface-base-CGVaOwta.cjs';
3
3
  import '@lsby/ts-fp-data';
4
4
  import 'express';
5
5
  import '../../help/help.cjs';
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { 插 as __ } from '../../interface-base-CFXGjV5S.cjs';
2
+ import { 插 as __ } from '../../interface-base-CGVaOwta.cjs';
3
3
  import '@lsby/ts-fp-data';
4
4
  import 'express';
5
5
  import '../../help/help.cjs';
@@ -1,6 +1,6 @@
1
1
  import express from 'express';
2
2
  import { AnyZodObject, z } from 'zod';
3
- import { 插 as __, 包 as _____, v as _____$1, 取 as _Task______, m as __________ } from '../../interface-base-CFXGjV5S.cjs';
3
+ import { 插 as __, 包 as _____, y as _____$1, 取 as _Task______, n as __________ } from '../../interface-base-CGVaOwta.cjs';
4
4
  import '@lsby/ts-fp-data';
5
5
  import '../../help/help.cjs';
6
6
  import '@lsby/ts-log';
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { 插 as __ } from '../../interface-base-CFXGjV5S.cjs';
2
+ import { 插 as __ } from '../../interface-base-CGVaOwta.cjs';
3
3
  import '@lsby/ts-fp-data';
4
4
  import 'express';
5
5
  import '../../help/help.cjs';
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { 插 as __ } from '../../interface-base-CFXGjV5S.cjs';
2
+ import { 插 as __ } from '../../interface-base-CGVaOwta.cjs';
3
3
  import '@lsby/ts-fp-data';
4
4
  import 'express';
5
5
  import '../../help/help.cjs';
@@ -1,6 +1,6 @@
1
1
  import express from 'express';
2
2
  import { z } from 'zod';
3
- import { 插 as __ } from '../../interface-base-CFXGjV5S.cjs';
3
+ import { 插 as __ } from '../../interface-base-CGVaOwta.cjs';
4
4
  import '@lsby/ts-fp-data';
5
5
  import '../../help/help.cjs';
6
6
  import '@lsby/ts-log';
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { 插 as __, 包 as _____, v as _____$1, w as _Task____ } from '../../interface-base-CFXGjV5S.cjs';
2
+ import { 插 as __, 包 as _____, y as _____$1, z as _Task____ } from '../../interface-base-CGVaOwta.cjs';
3
3
  import '@lsby/ts-fp-data';
4
4
  import 'express';
5
5
  import '../../help/help.cjs';
@@ -1,7 +1,7 @@
1
1
  import '@lsby/ts-fp-data';
2
2
  import 'express';
3
3
  import 'zod';
4
- export { u as 任意插件, 包 as 包装插件项, 取 as 取Task插件内部类型, w as 取Task插件类型, x as 取插件内部ts类型, 合 as 合并插件结果, 插 as 插件, v as 插件项类型 } from '../interface-base-CFXGjV5S.cjs';
4
+ export { x as 任意插件, 包 as 包装插件项, 取 as 取Task插件内部类型, z as 取Task插件类型, A as 取插件内部ts类型, 合 as 合并插件结果, 插 as 插件, y as 插件项类型 } from '../interface-base-CGVaOwta.cjs';
5
5
  import '../help/help.cjs';
6
6
  import '@lsby/ts-log';
7
7
  import 'node:http';
@@ -311,8 +311,21 @@ var \u670D\u52A1\u5668 = class {
311
311
  await log.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
312
312
  let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8FD0\u884C(req, res, {}, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
313
313
  await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
314
- let \u6700\u7EC8\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
315
- await log.debug("\u8FD4\u56DE\u6570\u636E: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6700\u7EC8\u7ED3\u679C)));
314
+ let \u6700\u7EC8\u7ED3\u679C;
315
+ let \u8F6C\u6362\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
316
+ let \u9519\u8BEF\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
317
+ let \u6B63\u786E\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
318
+ if (\u9519\u8BEF\u7ED3\u679C.success === true) {
319
+ \u6700\u7EC8\u7ED3\u679C = \u9519\u8BEF\u7ED3\u679C.data;
320
+ } else if (\u6B63\u786E\u7ED3\u679C.success === true) {
321
+ \u6700\u7EC8\u7ED3\u679C = \u6B63\u786E\u7ED3\u679C.data;
322
+ } else {
323
+ await log.error("\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C");
324
+ await log.error("\u5BF9\u4E8E\u9519\u8BEF\u7ED3\u679C: %o", \u9519\u8BEF\u7ED3\u679C.error);
325
+ await log.error("\u5BF9\u4E8E\u6B63\u786E\u7ED3\u679C: %o", \u6B63\u786E\u7ED3\u679C.error);
326
+ throw new Error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8F6C\u6362\u7ED3\u679C))}`);
327
+ }
328
+ await log.debug("\u6700\u7EC8\u7ED3\u679C: %o", \u6700\u7EC8\u7ED3\u679C);
316
329
  res.send(\u6700\u7EC8\u7ED3\u679C);
317
330
  await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
318
331
  }
@@ -1,6 +1,6 @@
1
1
  import '@lsby/ts-log';
2
2
  import 'node:http';
3
- export { 服 as 服务器, 请 as 请求附加参数类型 } from '../interface-base-CFXGjV5S.cjs';
3
+ export { 服 as 服务器, 请 as 请求附加参数类型 } from '../interface-base-CGVaOwta.cjs';
4
4
  import 'zod';
5
5
  import '@lsby/ts-fp-data';
6
6
  import 'express';
@@ -1,12 +1,12 @@
1
1
  import { z } from 'zod';
2
- import { 接 as ______, a as ______$1, k as ____, b as __, 常 as _______, o as __________, p as __________$1 } from '../interface-base-CFXGjV5S.cjs';
2
+ import { 接 as ______, a as ______$1, k as ____Base, 空 as ___, b as __, 常 as _______, p as __________, q as __________$1 } from '../interface-base-CGVaOwta.cjs';
3
3
  import '@lsby/ts-fp-data';
4
4
  import 'express';
5
5
  import '../help/help.cjs';
6
6
  import '@lsby/ts-log';
7
7
  import 'node:http';
8
8
 
9
- declare class 常用形式接口封装<路径类型 extends ______, 方法类型 extends ______$1, 逻辑类型 extends ____<any, Record<string, never>, z.infer<接口错误形式Zod>, z.infer<接口正确形式Zod>>, 接口错误形式Zod extends z.ZodTypeAny, 接口正确形式Zod extends z.ZodTypeAny> extends __<路径类型, 方法类型, 逻辑类型, z.ZodObject<{
9
+ declare class 常用形式接口封装<路径类型 extends ______, 方法类型 extends ______$1, 逻辑类型 extends ____Base<any, ___, z.infer<接口错误形式Zod>, z.infer<接口正确形式Zod>, any>, 接口错误形式Zod extends z.ZodTypeAny, 接口正确形式Zod extends z.ZodTypeAny> extends __<路径类型, 方法类型, 逻辑类型, z.ZodObject<{
10
10
  status: z.ZodLiteral<'fail'>;
11
11
  data: 接口错误形式Zod;
12
12
  }>, z.ZodObject<{
@@ -1,12 +1,12 @@
1
1
  import { z } from 'zod';
2
- import { 接 as ______, a as ______$1, k as ____, b as __, t as ___________, o as __________, p as __________$1 } from '../interface-base-CFXGjV5S.cjs';
2
+ import { 接 as ______, a as ______$1, k as ____Base, 空 as ___, b as __, w as ___________, p as __________, q as __________$1 } from '../interface-base-CGVaOwta.cjs';
3
3
  import '@lsby/ts-fp-data';
4
4
  import 'express';
5
5
  import '../help/help.cjs';
6
6
  import '@lsby/ts-log';
7
7
  import 'node:http';
8
8
 
9
- declare class 常用延时直接形式接口封装<路径类型 extends ______, 方法类型 extends ______$1, 逻辑类型 extends ____<any, Record<string, never>, z.infer<接口错误形式Zod>, () => z.infer<接口正确形式Zod>>, 接口错误形式Zod extends z.ZodTypeAny, 接口正确形式Zod extends z.ZodTypeAny> extends __<路径类型, 方法类型, 逻辑类型, z.ZodObject<{
9
+ declare class 常用延时直接形式接口封装<路径类型 extends ______, 方法类型 extends ______$1, 逻辑类型 extends ____Base<any, ___, z.infer<接口错误形式Zod>, () => z.infer<接口正确形式Zod>, any>, 接口错误形式Zod extends z.ZodTypeAny, 接口正确形式Zod extends z.ZodTypeAny> extends __<路径类型, 方法类型, 逻辑类型, z.ZodObject<{
10
10
  status: z.ZodLiteral<'fail'>;
11
11
  data: 接口错误形式Zod;
12
12
  }>, 接口正确形式Zod, ___________<boolean, __________<逻辑类型>, __________$1<逻辑类型>>> {
@@ -0,0 +1,73 @@
1
+ // src/interface/interface-logic.ts
2
+ import { Right } from "@lsby/ts-fp-data";
3
+ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
4
+ constructor(\u6700\u540E\u63A5\u53E3) {
5
+ this.\u6700\u540E\u63A5\u53E3 = \u6700\u540E\u63A5\u53E3;
6
+ }
7
+ static \u7A7A\u903B\u8F91() {
8
+ return _\u63A5\u53E3\u903B\u8F91Base.\u6784\u9020([], async () => new Right({}));
9
+ }
10
+ static \u5B8C\u6574\u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0, \u6700\u540E\u63A5\u53E3\u903B\u8F91) {
11
+ let c = new class extends _\u63A5\u53E3\u903B\u8F91Base {
12
+ \u83B7\u5F97\u63D2\u4EF6\u4EEC() {
13
+ return \u63D2\u4EF6\u4EEC;
14
+ }
15
+ \u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
16
+ return \u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
17
+ }
18
+ }(\u6700\u540E\u63A5\u53E3\u903B\u8F91);
19
+ return c;
20
+ }
21
+ static \u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0) {
22
+ return this.\u5B8C\u6574\u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0, null);
23
+ }
24
+ async \u8FD0\u884C(req, res, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570) {
25
+ let log = \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570.log.extend("\u63A5\u53E3\u903B\u8F91");
26
+ let \u63D2\u4EF6\u4EEC = this.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
27
+ await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63D2\u4EF6\u4EEC.length);
28
+ let \u6240\u6709\u63D2\u4EF6\u7ED3\u679C = [];
29
+ for (let \u63D2\u4EF6 of \u63D2\u4EF6\u4EEC) {
30
+ let \u63D2\u4EF6\u672C\u4F53 = await \u63D2\u4EF6.run();
31
+ let \u63D2\u4EF6\u8FD4\u56DE = await \u63D2\u4EF6\u672C\u4F53.\u8FD0\u884C(req, res, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570);
32
+ \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.push(\u63D2\u4EF6\u8FD4\u56DE);
33
+ }
34
+ let \u5408\u5E76\u63D2\u4EF6\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => Object.assign(s, a), {});
35
+ await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
36
+ await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u5B9E\u73B0...");
37
+ let \u5B9E\u73B0\u7ED3\u679C = await this.\u5B9E\u73B0(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570);
38
+ await log.debug("\u63A5\u53E3\u5B9E\u73B0\u6267\u884C\u5B8C\u6BD5");
39
+ return \u5B9E\u73B0\u7ED3\u679C.map((a) => ({ ...\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...a }));
40
+ }
41
+ \u6DF7\u5408(\u8F93\u5165) {
42
+ return _\u63A5\u53E3\u903B\u8F91Base.\u5B8C\u6574\u6784\u9020(
43
+ [...this.\u83B7\u5F97\u63D2\u4EF6\u4EEC(), ...\u8F93\u5165.\u83B7\u5F97\u63D2\u4EF6\u4EEC()],
44
+ async (\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) => {
45
+ let \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C = await this.\u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
46
+ if (\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.isLeft())
47
+ return \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C;
48
+ let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight() };
49
+ let \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C = await \u8F93\u5165.\u5B9E\u73B0(
50
+ \u53C2\u6570,
51
+ { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight() },
52
+ \u8BF7\u6C42\u9644\u52A0\u53C2\u6570
53
+ );
54
+ let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => ({ ...\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, ...a }));
55
+ return \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C;
56
+ },
57
+ \u8F93\u5165
58
+ );
59
+ }
60
+ \u83B7\u5F97\u6700\u540E\u63A5\u53E3() {
61
+ return this.\u6700\u540E\u63A5\u53E3;
62
+ }
63
+ };
64
+ var \u63A5\u53E3\u903B\u8F91 = class extends \u63A5\u53E3\u903B\u8F91Base {
65
+ constructor() {
66
+ super(null);
67
+ }
68
+ };
69
+
70
+ export {
71
+ 接口逻辑Base,
72
+ 接口逻辑
73
+ };
@@ -84,8 +84,21 @@ var \u670D\u52A1\u5668 = class {
84
84
  await log.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
85
85
  let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8FD0\u884C(req, res, {}, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
86
86
  await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
87
- let \u6700\u7EC8\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
88
- await log.debug("\u8FD4\u56DE\u6570\u636E: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6700\u7EC8\u7ED3\u679C)));
87
+ let \u6700\u7EC8\u7ED3\u679C;
88
+ let \u8F6C\u6362\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
89
+ let \u9519\u8BEF\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
90
+ let \u6B63\u786E\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
91
+ if (\u9519\u8BEF\u7ED3\u679C.success === true) {
92
+ \u6700\u7EC8\u7ED3\u679C = \u9519\u8BEF\u7ED3\u679C.data;
93
+ } else if (\u6B63\u786E\u7ED3\u679C.success === true) {
94
+ \u6700\u7EC8\u7ED3\u679C = \u6B63\u786E\u7ED3\u679C.data;
95
+ } else {
96
+ await log.error("\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C");
97
+ await log.error("\u5BF9\u4E8E\u9519\u8BEF\u7ED3\u679C: %o", \u9519\u8BEF\u7ED3\u679C.error);
98
+ await log.error("\u5BF9\u4E8E\u6B63\u786E\u7ED3\u679C: %o", \u6B63\u786E\u7ED3\u679C.error);
99
+ throw new Error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8F6C\u6362\u7ED3\u679C))}`);
100
+ }
101
+ await log.debug("\u6700\u7EC8\u7ED3\u679C: %o", \u6700\u7EC8\u7ED3\u679C);
89
102
  res.send(\u6700\u7EC8\u7ED3\u679C);
90
103
  await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
91
104
  }
@@ -1,11 +1,19 @@
1
1
  declare function 构造元组<T extends any[]>(args: [...T]): T;
2
2
  declare function 构造对象<K extends string, V>(key: K, value: V): Record<K, V>;
3
3
  type 去除只读<T> = T extends readonly [...infer U] ? U : never;
4
- type 类型相等<A, B> = A extends B ? (B extends A ? true : false) : false;
4
+ type 类型相等<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
5
5
  declare function 截断字符串(内容: string): string;
6
6
  declare function 递归截断字符串(数据: any): any;
7
7
  type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer U) => any ? U : never;
8
8
  type LastUnion<T> = UnionToIntersection<T extends any ? (x: T) => any : never> extends (x: infer L) => any ? L : never;
9
9
  type 联合转元组<T, Last = LastUnion<T>> = [T] extends [never] ? [] : [...联合转元组<Exclude<T, Last>>, Last];
10
+ type 数组包含<T extends readonly any[], U> = T extends [infer 第一个, ...infer 剩余] ? 类型相等<第一个, U> extends true ? true : 数组包含<剩余, U> : false;
11
+ type 对象去重<T> = {
12
+ [K in keyof T]: T[K];
13
+ };
14
+ type 数组去重<T extends readonly any[], 结果 extends readonly any[] = []> = T extends [
15
+ infer 第一个,
16
+ ...infer 剩余
17
+ ] ? 数组包含<结果, 第一个> extends true ? 数组去重<剩余, 结果> : 数组去重<剩余, [...结果, 第一个]> : 结果;
10
18
 
11
- export { type 去除只读, 截断字符串, 构造元组, 构造对象, type 类型相等, type 联合转元组, 递归截断字符串 };
19
+ export { type 去除只读, type 对象去重, 截断字符串, type 数组包含, type 数组去重, 构造元组, 构造对象, type 类型相等, type 联合转元组, 递归截断字符串 };