@lsby/net-core 0.3.36 → 0.3.38

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 (53) hide show
  1. package/dist/bin/gen-type/addition.cjs +14 -0
  2. package/dist/bin/gen-type/bin.cjs +51 -8
  3. package/dist/bin/gen-type/index.cjs +51 -8
  4. package/dist/cjs/bin/gen-type/addition.cjs +14 -0
  5. package/dist/cjs/bin/gen-type/bin.cjs +51 -8
  6. package/dist/cjs/bin/gen-type/index.cjs +51 -8
  7. package/dist/cjs/global/global.cjs +24 -0
  8. package/dist/cjs/global/global.d.cts +3 -1
  9. package/dist/cjs/global/ws.cjs +46 -0
  10. package/dist/cjs/global/ws.d.cts +13 -0
  11. package/dist/cjs/index.cjs +121 -19
  12. package/dist/cjs/index.d.cts +2 -1
  13. package/dist/cjs/interface/extend/json-base.cjs +49 -2
  14. package/dist/cjs/interface/extend/json-wrap.cjs +49 -2
  15. package/dist/cjs/plugin/extend/json.cjs +49 -2
  16. package/dist/cjs/plugin/extend/web-socket.cjs +111 -0
  17. package/dist/cjs/plugin/extend/web-socket.d.cts +22 -0
  18. package/dist/cjs/plugin/plug.d.cts +2 -1
  19. package/dist/cjs/result/result.cjs +49 -2
  20. package/dist/cjs/server/server.cjs +57 -15
  21. package/dist/cjs/tools/tools.cjs +52 -0
  22. package/dist/cjs/tools/tools.d.cts +4 -0
  23. package/dist/esm/bin/gen-type/addition.js +1 -1
  24. package/dist/esm/bin/gen-type/bin.js +2 -2
  25. package/dist/esm/bin/gen-type/index.js +2 -2
  26. package/dist/esm/{chunk-7RH7Z7VC.js → chunk-3DVNMDUP.js} +38 -9
  27. package/dist/esm/{chunk-AMBUPXY3.js → chunk-54IJ3ZGJ.js} +8 -5
  28. package/dist/esm/chunk-AUPZZGG7.js +45 -0
  29. package/dist/esm/{chunk-AHCV3LQ7.js → chunk-BC6IISWS.js} +7 -0
  30. package/dist/esm/{chunk-XM66T73O.js → chunk-BEJF4KW3.js} +34 -16
  31. package/dist/esm/chunk-EAVNASDB.js +22 -0
  32. package/dist/esm/chunk-ES4NZ4EM.js +27 -0
  33. package/dist/esm/{chunk-PVTF4VYK.js → chunk-HOFWZLG5.js} +1 -1
  34. package/dist/esm/{chunk-B55VVACL.js → chunk-KNZTLDS7.js} +1 -1
  35. package/dist/esm/{chunk-OMGVOLYE.js → chunk-KRQ6KUVY.js} +14 -0
  36. package/dist/esm/{chunk-IPDMEQ3O.js → chunk-PKE7OYIU.js} +6 -3
  37. package/dist/esm/global/global.d.ts +3 -1
  38. package/dist/esm/global/global.js +2 -1
  39. package/dist/esm/global/ws.d.ts +13 -0
  40. package/dist/esm/global/ws.js +6 -0
  41. package/dist/esm/index.d.ts +2 -1
  42. package/dist/esm/index.js +15 -9
  43. package/dist/esm/interface/extend/json-base.js +5 -3
  44. package/dist/esm/interface/extend/json-wrap.js +5 -3
  45. package/dist/esm/plugin/extend/json.js +4 -2
  46. package/dist/esm/plugin/extend/web-socket.d.ts +22 -0
  47. package/dist/esm/plugin/extend/web-socket.js +9 -0
  48. package/dist/esm/plugin/plug.d.ts +2 -1
  49. package/dist/esm/result/result.js +4 -2
  50. package/dist/esm/server/server.js +3 -2
  51. package/dist/esm/tools/tools.d.ts +4 -0
  52. package/dist/esm/tools/tools.js +8 -0
  53. package/package.json +3 -1
@@ -34,6 +34,7 @@ __export(src_exports, {
34
34
  JSON\u72B6\u6001\u63A5\u53E3: () => JSON\u72B6\u6001\u63A5\u53E3,
35
35
  JSON\u72B6\u6001\u63A5\u53E3\u7C7B\u578B: () => JSON\u72B6\u6001\u63A5\u53E3\u7C7B\u578B,
36
36
  JSON\u89E3\u6790\u63D2\u4EF6: () => JSON\u89E3\u6790\u63D2\u4EF6,
37
+ WebSocket\u63D2\u4EF6: () => WebSocket\u63D2\u4EF6,
37
38
  \u4E1A\u52A1\u884C\u4E3A: () => \u4E1A\u52A1\u884C\u4E3A,
38
39
  \u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6: () => \u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6,
39
40
  \u63A5\u53E3: () => \u63A5\u53E3,
@@ -192,12 +193,59 @@ var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
192
193
  // src/global/global.ts
193
194
  var import_ts_global = require("@lsby/ts-global");
194
195
  var import_ts_log = require("@lsby/ts-log");
196
+
197
+ // src/global/ws.ts
198
+ var WebSocket\u7BA1\u7406\u8005 = class {
199
+ constructor(\u8FDE\u63A5\u8868) {
200
+ this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
201
+ }
202
+ async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
203
+ this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
204
+ }
205
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
206
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
207
+ }
208
+ async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
209
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
210
+ }
211
+ async \u5220\u9664\u8FDE\u63A5(id) {
212
+ delete this.\u8FDE\u63A5\u8868[id];
213
+ }
214
+ };
215
+
216
+ // src/global/global.ts
195
217
  var Global = new import_ts_global.GlobalService([
196
218
  new import_ts_global.GlobalAsyncItem("log", async () => {
197
219
  return new import_ts_log.Log("@lsby:net-core");
220
+ }),
221
+ new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
222
+ return new WebSocket\u7BA1\u7406\u8005({});
198
223
  })
199
224
  ]);
200
225
 
226
+ // src/tools/tools.ts
227
+ function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
228
+ var \u6700\u5927\u65E5\u5FD7\u957F\u5EA6 = 1e3;
229
+ if (\u5185\u5BB9.length > \u6700\u5927\u65E5\u5FD7\u957F\u5EA6)
230
+ return \u5185\u5BB9.slice(0, \u6700\u5927\u65E5\u5FD7\u957F\u5EA6) + "...";
231
+ return \u5185\u5BB9;
232
+ }
233
+ function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
234
+ if (typeof \u6570\u636E === "string")
235
+ return \u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E);
236
+ if (Array.isArray(\u6570\u636E))
237
+ return \u6570\u636E.map((\u9879) => \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u9879));
238
+ if (typeof \u6570\u636E === "object" && \u6570\u636E !== null) {
239
+ const \u65B0\u6570\u636E = {};
240
+ for (const key in \u6570\u636E) {
241
+ if (\u6570\u636E.hasOwnProperty(key))
242
+ \u65B0\u6570\u636E[key] = \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E[key]);
243
+ }
244
+ return \u65B0\u6570\u636E;
245
+ }
246
+ return \u6570\u636E;
247
+ }
248
+
201
249
  // src/result/result.ts
202
250
  var \u7ED3\u679C = class {
203
251
  };
@@ -212,7 +260,7 @@ var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
212
260
  log = Global.getItem("log");
213
261
  async run(req, res) {
214
262
  var log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
215
- await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
263
+ await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
216
264
  res.send(this.data);
217
265
  }
218
266
  };
@@ -236,7 +284,7 @@ var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
236
284
  log = Global.getItem("log");
237
285
  async run(req, res) {
238
286
  var log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
239
- await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
287
+ await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
240
288
  res.send(this.data);
241
289
  }
242
290
  };
@@ -386,13 +434,13 @@ var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
386
434
  pRes(null);
387
435
  })
388
436
  );
389
- await log.debug("\u51C6\u5907\u89E3\u6790 JSON\uFF1A%o", req.body);
437
+ await log.debug("\u51C6\u5907\u89E3\u6790 JSON\uFF1A%o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(req.body));
390
438
  const parseResult = t.safeParse(req.body);
391
439
  if (!parseResult.success) {
392
440
  await log.err("\u89E3\u6790 JSON \u5931\u8D25\uFF1A%o", parseResult.error);
393
441
  throw new Error((0, import_node_util.format)("\u89E3\u6790 JSON \u5931\u8D25: %O", parseResult.error));
394
442
  }
395
- await log.debug("\u6210\u529F\u89E3\u6790 JSON\uFF1A%o", parseResult.data);
443
+ await log.debug("\u6210\u529F\u89E3\u6790 JSON");
396
444
  return parseResult.data;
397
445
  });
398
446
  }
@@ -417,10 +465,46 @@ var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
417
465
  }
418
466
  };
419
467
 
468
+ // src/plugin/extend/web-socket.ts
469
+ var import_zod3 = require("zod");
470
+ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
471
+ constructor(\u4FE1\u606F\u63CF\u8FF0) {
472
+ super(
473
+ import_zod3.z.object({
474
+ ws\u64CD\u4F5C: import_zod3.z.object({
475
+ \u53D1\u9001ws\u4FE1\u606F: import_zod3.z.function(import_zod3.z.tuple([\u4FE1\u606F\u63CF\u8FF0]), import_zod3.z.promise(import_zod3.z.void())),
476
+ \u5173\u95EDws\u8FDE\u63A5: import_zod3.z.function(import_zod3.z.tuple([]), import_zod3.z.promise(import_zod3.z.void()))
477
+ }).or(import_zod3.z.undefined())
478
+ }),
479
+ async (req, _res) => {
480
+ var wsId = req.headers["ws-client-id"];
481
+ var WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
482
+ var ws\u53E5\u67C4 = null;
483
+ if (typeof wsId == "string")
484
+ ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(wsId);
485
+ if (!ws\u53E5\u67C4)
486
+ return { ws\u64CD\u4F5C: void 0 };
487
+ var \u5B58\u5728\u7684ws\u53E5\u67C4 = ws\u53E5\u67C4;
488
+ return {
489
+ ws\u64CD\u4F5C: {
490
+ async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
491
+ \u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F));
492
+ },
493
+ async \u5173\u95EDws\u8FDE\u63A5() {
494
+ \u5B58\u5728\u7684ws\u53E5\u67C4.close();
495
+ }
496
+ }
497
+ };
498
+ }
499
+ );
500
+ }
501
+ };
502
+
420
503
  // src/server/server.ts
421
504
  var import_node_os = require("os");
422
505
  var import_express3 = __toESM(require("express"), 1);
423
506
  var import_short_uuid = __toESM(require("short-uuid"), 1);
507
+ var import_ws2 = require("ws");
424
508
  var \u670D\u52A1\u5668 = class {
425
509
  constructor(\u63A5\u53E3\u4EEC, \u7AEF\u53E3, \u9759\u6001\u8D44\u6E90\u8DEF\u5F84) {
426
510
  this.\u63A5\u53E3\u4EEC = \u63A5\u53E3\u4EEC;
@@ -429,27 +513,27 @@ var \u670D\u52A1\u5668 = class {
429
513
  }
430
514
  log = Global.getItem("log");
431
515
  async run() {
432
- const app = (0, import_express3.default)();
516
+ var app = (0, import_express3.default)();
433
517
  app.use(async (req, res) => {
434
518
  var log = (await this.log).extend("\u8BF7\u6C42").extend((0, import_short_uuid.default)().new());
435
519
  try {
436
- const \u8BF7\u6C42\u8DEF\u5F84 = req.path;
437
- const \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
520
+ var \u8BF7\u6C42\u8DEF\u5F84 = req.path;
521
+ var \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
438
522
  await log.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
439
523
  await log.debug("\u5C1D\u8BD5\u5339\u914D\u63A5\u53E3...");
440
- const \u76EE\u6807\u63A5\u53E3 = this.\u63A5\u53E3\u4EEC.find((\u63A5\u53E32) => {
441
- const \u63A5\u53E3\u7C7B\u578B2 = \u63A5\u53E32.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
442
- return \u8BF7\u6C42\u8DEF\u5F84 == \u63A5\u53E3\u7C7B\u578B2.\u83B7\u5F97\u8DEF\u5F84() && \u8BF7\u6C42\u65B9\u6CD5 == \u63A5\u53E3\u7C7B\u578B2.\u83B7\u5F97\u65B9\u6CD5();
524
+ var \u76EE\u6807\u63A5\u53E3 = this.\u63A5\u53E3\u4EEC.find((\u63A5\u53E32) => {
525
+ var \u63A5\u53E3\u7C7B\u578B3 = \u63A5\u53E32.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
526
+ return \u8BF7\u6C42\u8DEF\u5F84 == \u63A5\u53E3\u7C7B\u578B3.\u83B7\u5F97\u8DEF\u5F84() && \u8BF7\u6C42\u65B9\u6CD5 == \u63A5\u53E3\u7C7B\u578B3.\u83B7\u5F97\u65B9\u6CD5();
443
527
  });
444
528
  if (\u76EE\u6807\u63A5\u53E3 != null) {
445
529
  await log.debug("\u547D\u4E2D\u63A5\u53E3");
446
- const \u63A5\u53E3\u7C7B\u578B2 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
447
- const \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B2.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
530
+ var \u63A5\u53E3\u7C7B\u578B2 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
531
+ var \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B2.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
448
532
  await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63A5\u53E3\u63D2\u4EF6.length);
449
- const \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF62) => await (await \u63D2\u4EF62.run()).\u83B7\u5F97\u5B9E\u73B0()(req, res)))).reduce((s, a) => Object.assign(s, a), {});
533
+ var \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF62) => await (await \u63D2\u4EF62.run()).\u83B7\u5F97\u5B9E\u73B0()(req, res)))).reduce((s, a) => Object.assign(s, a), {});
450
534
  await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
451
535
  await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u903B\u8F91...");
452
- const \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
536
+ var \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
453
537
  await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
454
538
  await log.debug("\u51C6\u5907\u6267\u884C\u8FD4\u56DE\u903B\u8F91...");
455
539
  await \u63A5\u53E3\u7ED3\u679C.run(req, res);
@@ -476,12 +560,29 @@ var \u670D\u52A1\u5668 = class {
476
560
  res.send("\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF");
477
561
  }
478
562
  });
479
- var server = null;
480
- await new Promise((res, _rej) => {
481
- server = app.listen(this.\u7AEF\u53E3, () => res());
563
+ var server = app.listen(this.\u7AEF\u53E3);
564
+ var wss = new import_ws2.WebSocketServer({ server });
565
+ wss.on("connection", async (ws, req) => {
566
+ var log = (await this.log).extend("WebSocket").extend((0, import_short_uuid.default)().new());
567
+ await log.debug(`WebSocket \u8BF7\u6C42\u8FDE\u63A5: ${req.url}`);
568
+ var WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
569
+ var \u5BA2\u6237\u7AEFid = req.url?.split("?id=")[1];
570
+ if (!\u5BA2\u6237\u7AEFid)
571
+ return ws.close(4001, "\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
572
+ if (await WebSocket\u7BA1\u7406\u80052.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid) == true)
573
+ return ws.close(4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
574
+ var \u5B58\u5728\u7684\u5BA2\u6237\u7AEFid = \u5BA2\u6237\u7AEFid;
575
+ await WebSocket\u7BA1\u7406\u80052.\u589E\u52A0\u8FDE\u63A5(\u5BA2\u6237\u7AEFid, ws);
576
+ await log.debug(`WebSocket \u8FDE\u63A5\u5DF2\u5EFA\u7ACB, \u5BA2\u6237\u7AEFid: ${\u5BA2\u6237\u7AEFid}`);
577
+ ws.on("close", async () => {
578
+ await log.debug(`WebSocket \u8FDE\u63A5\u5DF2\u5173\u95ED: ${\u5BA2\u6237\u7AEFid}`);
579
+ await WebSocket\u7BA1\u7406\u80052.\u5220\u9664\u8FDE\u63A5(\u5B58\u5728\u7684\u5BA2\u6237\u7AEFid);
580
+ });
581
+ ws.on("error", async (err) => {
582
+ await log.err(`WebSocket \u51FA\u73B0\u9519\u8BEF ${\u5BA2\u6237\u7AEFid}: %o`, err);
583
+ await WebSocket\u7BA1\u7406\u80052.\u5220\u9664\u8FDE\u63A5(\u5B58\u5728\u7684\u5BA2\u6237\u7AEFid);
584
+ });
482
585
  });
483
- if (server == null)
484
- throw new Error("\u542F\u52A8\u670D\u52A1\u5668\u5931\u8D25");
485
586
  return {
486
587
  ip: Object.values((0, import_node_os.networkInterfaces)()).flat().flatMap((address) => address !== void 0 ? [address] : []).map((wrappedAddress) => wrappedAddress.address).map((address) => `http://${address}:${this.\u7AEF\u53E3}`),
487
588
  server
@@ -494,6 +595,7 @@ var \u670D\u52A1\u5668 = class {
494
595
  JSON\u72B6\u6001\u63A5\u53E3,
495
596
  JSON\u72B6\u6001\u63A5\u53E3\u7C7B\u578B,
496
597
  JSON\u89E3\u6790\u63D2\u4EF6,
598
+ WebSocket\u63D2\u4EF6,
497
599
  \u4E1A\u52A1\u884C\u4E3A,
498
600
  \u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6,
499
601
  \u63A5\u53E3,
@@ -8,7 +8,8 @@ export { 中文路径支持插件 } from './plugin/extend/chinese-path.cjs';
8
8
  export { 自定义数据插件 } from './plugin/extend/custom-data.cjs';
9
9
  export { JSON解析插件, 从接口类型获得JSON参数, 任意JSON解析插件, 任意JSON解析插件项, 合并JSON插件结果 } from './plugin/extend/json.cjs';
10
10
  export { 表单解析插件 } from './plugin/extend/urlencoded.cjs';
11
- export { 任意插件, 包装插件项,Task插件内部类型, 取插件内部ts类型, 合并插件结果, 插件, 插件项类型 } from './plugin/plug.cjs';
11
+ export { WebSocket插件, 任意WS插件, 任意WS插件项, WS插件泛型, 取第一个WS插件结果 } from './plugin/extend/web-socket.cjs';
12
+ export { 任意插件, 包装插件项, 取Task插件内部类型, 取Task插件类型, 取插件内部ts类型, 合并插件结果, 插件, 插件项类型 } from './plugin/plug.cjs';
12
13
  export { 正确JSON结果, 正确结果, 正确自定义结果, 结果, 错误JSON结果, 错误结果 } from './result/result.cjs';
13
14
  export { 服务器 } from './server/server.cjs';
14
15
  import '@lsby/ts-fp-data';
@@ -27,12 +27,59 @@ module.exports = __toCommonJS(json_base_exports);
27
27
  // src/global/global.ts
28
28
  var import_ts_global = require("@lsby/ts-global");
29
29
  var import_ts_log = require("@lsby/ts-log");
30
+
31
+ // src/global/ws.ts
32
+ var WebSocket\u7BA1\u7406\u8005 = class {
33
+ constructor(\u8FDE\u63A5\u8868) {
34
+ this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
35
+ }
36
+ async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
37
+ this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
38
+ }
39
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
40
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
41
+ }
42
+ async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
43
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
44
+ }
45
+ async \u5220\u9664\u8FDE\u63A5(id) {
46
+ delete this.\u8FDE\u63A5\u8868[id];
47
+ }
48
+ };
49
+
50
+ // src/global/global.ts
30
51
  var Global = new import_ts_global.GlobalService([
31
52
  new import_ts_global.GlobalAsyncItem("log", async () => {
32
53
  return new import_ts_log.Log("@lsby:net-core");
54
+ }),
55
+ new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
56
+ return new WebSocket\u7BA1\u7406\u8005({});
33
57
  })
34
58
  ]);
35
59
 
60
+ // src/tools/tools.ts
61
+ function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
62
+ var \u6700\u5927\u65E5\u5FD7\u957F\u5EA6 = 1e3;
63
+ if (\u5185\u5BB9.length > \u6700\u5927\u65E5\u5FD7\u957F\u5EA6)
64
+ return \u5185\u5BB9.slice(0, \u6700\u5927\u65E5\u5FD7\u957F\u5EA6) + "...";
65
+ return \u5185\u5BB9;
66
+ }
67
+ function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
68
+ if (typeof \u6570\u636E === "string")
69
+ return \u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E);
70
+ if (Array.isArray(\u6570\u636E))
71
+ return \u6570\u636E.map((\u9879) => \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u9879));
72
+ if (typeof \u6570\u636E === "object" && \u6570\u636E !== null) {
73
+ const \u65B0\u6570\u636E = {};
74
+ for (const key in \u6570\u636E) {
75
+ if (\u6570\u636E.hasOwnProperty(key))
76
+ \u65B0\u6570\u636E[key] = \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E[key]);
77
+ }
78
+ return \u65B0\u6570\u636E;
79
+ }
80
+ return \u6570\u636E;
81
+ }
82
+
36
83
  // src/result/result.ts
37
84
  var \u7ED3\u679C = class {
38
85
  };
@@ -47,7 +94,7 @@ var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
47
94
  log = Global.getItem("log");
48
95
  async run(req, res) {
49
96
  var log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
50
- await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
97
+ await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
51
98
  res.send(this.data);
52
99
  }
53
100
  };
@@ -62,7 +109,7 @@ var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
62
109
  log = Global.getItem("log");
63
110
  async run(req, res) {
64
111
  var log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
65
- await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
112
+ await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
66
113
  res.send(this.data);
67
114
  }
68
115
  };
@@ -29,12 +29,59 @@ var import_zod = require("zod");
29
29
  // src/global/global.ts
30
30
  var import_ts_global = require("@lsby/ts-global");
31
31
  var import_ts_log = require("@lsby/ts-log");
32
+
33
+ // src/global/ws.ts
34
+ var WebSocket\u7BA1\u7406\u8005 = class {
35
+ constructor(\u8FDE\u63A5\u8868) {
36
+ this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
37
+ }
38
+ async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
39
+ this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
40
+ }
41
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
42
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
43
+ }
44
+ async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
45
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
46
+ }
47
+ async \u5220\u9664\u8FDE\u63A5(id) {
48
+ delete this.\u8FDE\u63A5\u8868[id];
49
+ }
50
+ };
51
+
52
+ // src/global/global.ts
32
53
  var Global = new import_ts_global.GlobalService([
33
54
  new import_ts_global.GlobalAsyncItem("log", async () => {
34
55
  return new import_ts_log.Log("@lsby:net-core");
56
+ }),
57
+ new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
58
+ return new WebSocket\u7BA1\u7406\u8005({});
35
59
  })
36
60
  ]);
37
61
 
62
+ // src/tools/tools.ts
63
+ function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
64
+ var \u6700\u5927\u65E5\u5FD7\u957F\u5EA6 = 1e3;
65
+ if (\u5185\u5BB9.length > \u6700\u5927\u65E5\u5FD7\u957F\u5EA6)
66
+ return \u5185\u5BB9.slice(0, \u6700\u5927\u65E5\u5FD7\u957F\u5EA6) + "...";
67
+ return \u5185\u5BB9;
68
+ }
69
+ function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
70
+ if (typeof \u6570\u636E === "string")
71
+ return \u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E);
72
+ if (Array.isArray(\u6570\u636E))
73
+ return \u6570\u636E.map((\u9879) => \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u9879));
74
+ if (typeof \u6570\u636E === "object" && \u6570\u636E !== null) {
75
+ const \u65B0\u6570\u636E = {};
76
+ for (const key in \u6570\u636E) {
77
+ if (\u6570\u636E.hasOwnProperty(key))
78
+ \u65B0\u6570\u636E[key] = \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E[key]);
79
+ }
80
+ return \u65B0\u6570\u636E;
81
+ }
82
+ return \u6570\u636E;
83
+ }
84
+
38
85
  // src/result/result.ts
39
86
  var \u7ED3\u679C = class {
40
87
  };
@@ -49,7 +96,7 @@ var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
49
96
  log = Global.getItem("log");
50
97
  async run(req, res) {
51
98
  var log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
52
- await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
99
+ await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
53
100
  res.send(this.data);
54
101
  }
55
102
  };
@@ -64,7 +111,7 @@ var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
64
111
  log = Global.getItem("log");
65
112
  async run(req, res) {
66
113
  var log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
67
- await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
114
+ await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
68
115
  res.send(this.data);
69
116
  }
70
117
  };
@@ -39,12 +39,59 @@ var import_express = __toESM(require("express"), 1);
39
39
  // src/global/global.ts
40
40
  var import_ts_global = require("@lsby/ts-global");
41
41
  var import_ts_log = require("@lsby/ts-log");
42
+
43
+ // src/global/ws.ts
44
+ var WebSocket\u7BA1\u7406\u8005 = class {
45
+ constructor(\u8FDE\u63A5\u8868) {
46
+ this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
47
+ }
48
+ async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
49
+ this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
50
+ }
51
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
52
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
53
+ }
54
+ async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
55
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
56
+ }
57
+ async \u5220\u9664\u8FDE\u63A5(id) {
58
+ delete this.\u8FDE\u63A5\u8868[id];
59
+ }
60
+ };
61
+
62
+ // src/global/global.ts
42
63
  var Global = new import_ts_global.GlobalService([
43
64
  new import_ts_global.GlobalAsyncItem("log", async () => {
44
65
  return new import_ts_log.Log("@lsby:net-core");
66
+ }),
67
+ new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
68
+ return new WebSocket\u7BA1\u7406\u8005({});
45
69
  })
46
70
  ]);
47
71
 
72
+ // src/tools/tools.ts
73
+ function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
74
+ var \u6700\u5927\u65E5\u5FD7\u957F\u5EA6 = 1e3;
75
+ if (\u5185\u5BB9.length > \u6700\u5927\u65E5\u5FD7\u957F\u5EA6)
76
+ return \u5185\u5BB9.slice(0, \u6700\u5927\u65E5\u5FD7\u957F\u5EA6) + "...";
77
+ return \u5185\u5BB9;
78
+ }
79
+ function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
80
+ if (typeof \u6570\u636E === "string")
81
+ return \u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E);
82
+ if (Array.isArray(\u6570\u636E))
83
+ return \u6570\u636E.map((\u9879) => \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u9879));
84
+ if (typeof \u6570\u636E === "object" && \u6570\u636E !== null) {
85
+ const \u65B0\u6570\u636E = {};
86
+ for (const key in \u6570\u636E) {
87
+ if (\u6570\u636E.hasOwnProperty(key))
88
+ \u65B0\u6570\u636E[key] = \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E[key]);
89
+ }
90
+ return \u65B0\u6570\u636E;
91
+ }
92
+ return \u6570\u636E;
93
+ }
94
+
48
95
  // src/plugin/plug.ts
49
96
  var \u63D2\u4EF6 = class {
50
97
  constructor(\u7C7B\u578B, \u5B9E\u73B0) {
@@ -70,13 +117,13 @@ var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
70
117
  pRes(null);
71
118
  })
72
119
  );
73
- await log.debug("\u51C6\u5907\u89E3\u6790 JSON\uFF1A%o", req.body);
120
+ await log.debug("\u51C6\u5907\u89E3\u6790 JSON\uFF1A%o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(req.body));
74
121
  const parseResult = t.safeParse(req.body);
75
122
  if (!parseResult.success) {
76
123
  await log.err("\u89E3\u6790 JSON \u5931\u8D25\uFF1A%o", parseResult.error);
77
124
  throw new Error((0, import_node_util.format)("\u89E3\u6790 JSON \u5931\u8D25: %O", parseResult.error));
78
125
  }
79
- await log.debug("\u6210\u529F\u89E3\u6790 JSON\uFF1A%o", parseResult.data);
126
+ await log.debug("\u6210\u529F\u89E3\u6790 JSON");
80
127
  return parseResult.data;
81
128
  });
82
129
  }
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/plugin/extend/web-socket.ts
21
+ var web_socket_exports = {};
22
+ __export(web_socket_exports, {
23
+ WebSocket\u63D2\u4EF6: () => WebSocket\u63D2\u4EF6
24
+ });
25
+ module.exports = __toCommonJS(web_socket_exports);
26
+ var import_zod = require("zod");
27
+
28
+ // src/global/global.ts
29
+ var import_ts_global = require("@lsby/ts-global");
30
+ var import_ts_log = require("@lsby/ts-log");
31
+
32
+ // src/global/ws.ts
33
+ var WebSocket\u7BA1\u7406\u8005 = class {
34
+ constructor(\u8FDE\u63A5\u8868) {
35
+ this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
36
+ }
37
+ async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
38
+ this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
39
+ }
40
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
41
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
42
+ }
43
+ async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
44
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
45
+ }
46
+ async \u5220\u9664\u8FDE\u63A5(id) {
47
+ delete this.\u8FDE\u63A5\u8868[id];
48
+ }
49
+ };
50
+
51
+ // src/global/global.ts
52
+ var Global = new import_ts_global.GlobalService([
53
+ new import_ts_global.GlobalAsyncItem("log", async () => {
54
+ return new import_ts_log.Log("@lsby:net-core");
55
+ }),
56
+ new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
57
+ return new WebSocket\u7BA1\u7406\u8005({});
58
+ })
59
+ ]);
60
+
61
+ // src/plugin/plug.ts
62
+ var \u63D2\u4EF6 = class {
63
+ constructor(\u7C7B\u578B, \u5B9E\u73B0) {
64
+ this.\u7C7B\u578B = \u7C7B\u578B;
65
+ this.\u5B9E\u73B0 = \u5B9E\u73B0;
66
+ }
67
+ \u83B7\u5F97\u7C7B\u578B() {
68
+ return this.\u7C7B\u578B;
69
+ }
70
+ \u83B7\u5F97\u5B9E\u73B0() {
71
+ return this.\u5B9E\u73B0;
72
+ }
73
+ };
74
+
75
+ // src/plugin/extend/web-socket.ts
76
+ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
77
+ constructor(\u4FE1\u606F\u63CF\u8FF0) {
78
+ super(
79
+ import_zod.z.object({
80
+ ws\u64CD\u4F5C: import_zod.z.object({
81
+ \u53D1\u9001ws\u4FE1\u606F: import_zod.z.function(import_zod.z.tuple([\u4FE1\u606F\u63CF\u8FF0]), import_zod.z.promise(import_zod.z.void())),
82
+ \u5173\u95EDws\u8FDE\u63A5: import_zod.z.function(import_zod.z.tuple([]), import_zod.z.promise(import_zod.z.void()))
83
+ }).or(import_zod.z.undefined())
84
+ }),
85
+ async (req, _res) => {
86
+ var wsId = req.headers["ws-client-id"];
87
+ var WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
88
+ var ws\u53E5\u67C4 = null;
89
+ if (typeof wsId == "string")
90
+ ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(wsId);
91
+ if (!ws\u53E5\u67C4)
92
+ return { ws\u64CD\u4F5C: void 0 };
93
+ var \u5B58\u5728\u7684ws\u53E5\u67C4 = ws\u53E5\u67C4;
94
+ return {
95
+ ws\u64CD\u4F5C: {
96
+ async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
97
+ \u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F));
98
+ },
99
+ async \u5173\u95EDws\u8FDE\u63A5() {
100
+ \u5B58\u5728\u7684ws\u53E5\u67C4.close();
101
+ }
102
+ }
103
+ };
104
+ }
105
+ );
106
+ }
107
+ };
108
+ // Annotate the CommonJS export names for ESM import in node:
109
+ 0 && (module.exports = {
110
+ WebSocket\u63D2\u4EF6
111
+ });
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ import { 插件 as __, 包装插件项 as _____, 插件项类型 as _____$1, 取Task插件类型 as _Task____ } from '../plug.cjs';
3
+ import 'express';
4
+ import '@lsby/ts-fp-data';
5
+
6
+ declare class WebSocket插件<信息 extends z.AnyZodObject> extends __<z.ZodObject<{
7
+ ws操作: z.ZodUnion<[
8
+ z.ZodObject<{
9
+ 发送ws信息: z.ZodFunction<z.ZodTuple<[信息], null>, z.ZodPromise<z.ZodVoid>>;
10
+ 关闭ws连接: z.ZodFunction<z.ZodTuple<[], null>, z.ZodPromise<z.ZodVoid>>;
11
+ }>,
12
+ z.ZodUndefined
13
+ ]>;
14
+ }>> {
15
+ constructor(信息描述: 信息);
16
+ }
17
+ type 任意WS插件 = WebSocket插件<any>;
18
+ type 任意WS插件项 = _____<任意WS插件>;
19
+ type 取WS插件泛型<A> = A extends WebSocket插件<infer x> ? x : never;
20
+ type 取第一个WS插件结果<Arr extends Array<_____$1>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____$1> ? 插件项 extends 任意WS插件项 ? z.infer<取WS插件泛型<_Task____<插件项>>> : 取第一个WS插件结果<xs> : {} : {} : {};
21
+
22
+ export { WebSocket插件, type 任意WS插件, type 任意WS插件项, type 取WS插件泛型, type 取第一个WS插件结果 };
@@ -14,7 +14,8 @@ type 任意插件 = 插件<any>;
14
14
  type 包装插件项<A> = Task<A>;
15
15
  type 插件项类型 = 包装插件项<插件<z.AnyZodObject>>;
16
16
  type 取Task插件内部类型<A> = A extends Task<插件<infer x>> ? x : never;
17
+ type 取Task插件类型<A> = A extends Task<infer x> ? x : never;
17
18
  type 取插件内部ts类型<A> = A extends 插件<infer x> ? z.infer<x> : never;
18
19
  type 合并插件结果<Arr extends Array<插件项类型>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<插件项类型> ? z.infer<取Task插件内部类型<插件项>> & 合并插件结果<xs> : {} : {} : {};
19
20
 
20
- export { type 任意插件, type 包装插件项, type 取Task插件内部类型, type 取插件内部ts类型, type 合并插件结果, 插件, type 插件项类型 };
21
+ export { type 任意插件, type 包装插件项, type 取Task插件内部类型, type 取Task插件类型, type 取插件内部ts类型, type 合并插件结果, 插件, type 插件项类型 };