@lsby/net-core 0.3.35 → 0.3.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/gen-type/addition.cjs +14 -0
- package/dist/bin/gen-type/bin.cjs +51 -8
- package/dist/bin/gen-type/index.cjs +51 -8
- package/dist/cjs/bin/gen-type/addition.cjs +14 -0
- package/dist/cjs/bin/gen-type/bin.cjs +51 -8
- package/dist/cjs/bin/gen-type/index.cjs +51 -8
- package/dist/cjs/global/global.cjs +24 -0
- package/dist/cjs/global/global.d.cts +3 -1
- package/dist/cjs/global/ws.cjs +46 -0
- package/dist/cjs/global/ws.d.cts +13 -0
- package/dist/cjs/index.cjs +109 -32
- package/dist/cjs/index.d.cts +2 -1
- package/dist/cjs/interface/extend/json-base.cjs +24 -0
- package/dist/cjs/interface/extend/json-wrap.cjs +24 -0
- package/dist/cjs/plugin/extend/json.cjs +24 -0
- package/dist/cjs/plugin/extend/web-socket.cjs +111 -0
- package/dist/cjs/plugin/extend/web-socket.d.cts +22 -0
- package/dist/cjs/plugin/plug.d.cts +2 -1
- package/dist/cjs/result/result.cjs +24 -0
- package/dist/cjs/server/server.cjs +72 -32
- package/dist/esm/bin/gen-type/addition.js +1 -1
- package/dist/esm/bin/gen-type/bin.js +2 -2
- package/dist/esm/bin/gen-type/index.js +2 -2
- package/dist/esm/{chunk-7RH7Z7VC.js → chunk-3DVNMDUP.js} +38 -9
- package/dist/esm/chunk-56BD5FOG.js +45 -0
- package/dist/esm/{chunk-AHCV3LQ7.js → chunk-BC6IISWS.js} +7 -0
- package/dist/esm/chunk-BEJF4KW3.js +97 -0
- package/dist/esm/chunk-EAVNASDB.js +22 -0
- package/dist/esm/{chunk-7OIWSU4D.js → chunk-FGAYTB2N.js} +3 -3
- package/dist/esm/{chunk-OMGVOLYE.js → chunk-KRQ6KUVY.js} +14 -0
- package/dist/esm/{chunk-ZFC2FWJW.js → chunk-QOCDUZSU.js} +1 -1
- package/dist/esm/{chunk-G7ZUXXCZ.js → chunk-W7UNHY6S.js} +1 -1
- package/dist/esm/{chunk-IPDMEQ3O.js → chunk-XU67JT6R.js} +1 -1
- package/dist/esm/global/global.d.ts +3 -1
- package/dist/esm/global/global.js +2 -1
- package/dist/esm/global/ws.d.ts +13 -0
- package/dist/esm/global/ws.js +6 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +13 -8
- package/dist/esm/interface/extend/json-base.js +4 -3
- package/dist/esm/interface/extend/json-wrap.js +4 -3
- package/dist/esm/plugin/extend/json.js +3 -2
- package/dist/esm/plugin/extend/web-socket.d.ts +22 -0
- package/dist/esm/plugin/extend/web-socket.js +9 -0
- package/dist/esm/plugin/plug.d.ts +2 -1
- package/dist/esm/result/result.js +3 -2
- package/dist/esm/server/server.js +3 -2
- package/package.json +3 -1
- package/dist/esm/chunk-K5ECRUNR.js +0 -81
package/dist/cjs/index.cjs
CHANGED
|
@@ -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,9 +193,33 @@ 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
|
|
|
@@ -417,10 +442,46 @@ var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
417
442
|
}
|
|
418
443
|
};
|
|
419
444
|
|
|
445
|
+
// src/plugin/extend/web-socket.ts
|
|
446
|
+
var import_zod3 = require("zod");
|
|
447
|
+
var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
448
|
+
constructor(\u4FE1\u606F\u63CF\u8FF0) {
|
|
449
|
+
super(
|
|
450
|
+
import_zod3.z.object({
|
|
451
|
+
ws\u64CD\u4F5C: import_zod3.z.object({
|
|
452
|
+
\u53D1\u9001ws\u4FE1\u606F: import_zod3.z.function(import_zod3.z.tuple([\u4FE1\u606F\u63CF\u8FF0]), import_zod3.z.promise(import_zod3.z.void())),
|
|
453
|
+
\u5173\u95EDws\u8FDE\u63A5: import_zod3.z.function(import_zod3.z.tuple([]), import_zod3.z.promise(import_zod3.z.void()))
|
|
454
|
+
}).or(import_zod3.z.undefined())
|
|
455
|
+
}),
|
|
456
|
+
async (req, _res) => {
|
|
457
|
+
var wsId = req.headers["ws-client-id"];
|
|
458
|
+
var WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
|
|
459
|
+
var ws\u53E5\u67C4 = null;
|
|
460
|
+
if (typeof wsId == "string")
|
|
461
|
+
ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(wsId);
|
|
462
|
+
if (!ws\u53E5\u67C4)
|
|
463
|
+
return { ws\u64CD\u4F5C: void 0 };
|
|
464
|
+
var \u5B58\u5728\u7684ws\u53E5\u67C4 = ws\u53E5\u67C4;
|
|
465
|
+
return {
|
|
466
|
+
ws\u64CD\u4F5C: {
|
|
467
|
+
async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
|
|
468
|
+
\u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F));
|
|
469
|
+
},
|
|
470
|
+
async \u5173\u95EDws\u8FDE\u63A5() {
|
|
471
|
+
\u5B58\u5728\u7684ws\u53E5\u67C4.close();
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
};
|
|
475
|
+
}
|
|
476
|
+
);
|
|
477
|
+
}
|
|
478
|
+
};
|
|
479
|
+
|
|
420
480
|
// src/server/server.ts
|
|
421
481
|
var import_node_os = require("os");
|
|
422
482
|
var import_express3 = __toESM(require("express"), 1);
|
|
423
483
|
var import_short_uuid = __toESM(require("short-uuid"), 1);
|
|
484
|
+
var import_ws2 = require("ws");
|
|
424
485
|
var \u670D\u52A1\u5668 = class {
|
|
425
486
|
constructor(\u63A5\u53E3\u4EEC, \u7AEF\u53E3, \u9759\u6001\u8D44\u6E90\u8DEF\u5F84) {
|
|
426
487
|
this.\u63A5\u53E3\u4EEC = \u63A5\u53E3\u4EEC;
|
|
@@ -429,16 +490,35 @@ var \u670D\u52A1\u5668 = class {
|
|
|
429
490
|
}
|
|
430
491
|
log = Global.getItem("log");
|
|
431
492
|
async run() {
|
|
432
|
-
|
|
493
|
+
var app = (0, import_express3.default)();
|
|
433
494
|
app.use(async (req, res) => {
|
|
434
495
|
var log = (await this.log).extend("\u8BF7\u6C42").extend((0, import_short_uuid.default)().new());
|
|
435
496
|
try {
|
|
436
|
-
|
|
437
|
-
|
|
497
|
+
var \u8BF7\u6C42\u8DEF\u5F84 = req.path;
|
|
498
|
+
var \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
|
|
438
499
|
await log.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
500
|
+
await log.debug("\u5C1D\u8BD5\u5339\u914D\u63A5\u53E3...");
|
|
501
|
+
var \u76EE\u6807\u63A5\u53E3 = this.\u63A5\u53E3\u4EEC.find((\u63A5\u53E32) => {
|
|
502
|
+
var \u63A5\u53E3\u7C7B\u578B3 = \u63A5\u53E32.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
503
|
+
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();
|
|
504
|
+
});
|
|
505
|
+
if (\u76EE\u6807\u63A5\u53E3 != null) {
|
|
506
|
+
await log.debug("\u547D\u4E2D\u63A5\u53E3");
|
|
507
|
+
var \u63A5\u53E3\u7C7B\u578B2 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
508
|
+
var \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B2.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
|
|
509
|
+
await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63A5\u53E3\u63D2\u4EF6.length);
|
|
510
|
+
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), {});
|
|
511
|
+
await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
512
|
+
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u903B\u8F91...");
|
|
513
|
+
var \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
|
|
514
|
+
await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
|
|
515
|
+
await log.debug("\u51C6\u5907\u6267\u884C\u8FD4\u56DE\u903B\u8F91...");
|
|
516
|
+
await \u63A5\u53E3\u7ED3\u679C.run(req, res);
|
|
517
|
+
await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
|
|
518
|
+
return;
|
|
519
|
+
}
|
|
520
|
+
await log.debug("\u6CA1\u6709\u547D\u4E2D\u63A5\u53E3");
|
|
521
|
+
if (this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 && req.method.toLowerCase() == "get") {
|
|
442
522
|
await log.debug("\u5C1D\u8BD5\u5339\u914D\u9759\u6001\u8D44\u6E90...");
|
|
443
523
|
import_express3.default.static(this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84, {
|
|
444
524
|
setHeaders: async () => {
|
|
@@ -446,27 +526,6 @@ var \u670D\u52A1\u5668 = class {
|
|
|
446
526
|
}
|
|
447
527
|
})(req, res, async () => {
|
|
448
528
|
await log.debug("\u6CA1\u6709\u547D\u4E2D\u9759\u6001\u8D44\u6E90");
|
|
449
|
-
await log.debug("\u5C1D\u8BD5\u5339\u914D\u63A5\u53E3...");
|
|
450
|
-
const \u76EE\u6807\u63A5\u53E3 = this.\u63A5\u53E3\u4EEC.find((\u63A5\u53E32) => {
|
|
451
|
-
const \u63A5\u53E3\u7C7B\u578B2 = \u63A5\u53E32.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
452
|
-
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();
|
|
453
|
-
});
|
|
454
|
-
if (\u76EE\u6807\u63A5\u53E3 != null) {
|
|
455
|
-
await log.debug("\u547D\u4E2D\u63A5\u53E3");
|
|
456
|
-
const \u63A5\u53E3\u7C7B\u578B2 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
457
|
-
const \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B2.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
|
|
458
|
-
await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63A5\u53E3\u63D2\u4EF6.length);
|
|
459
|
-
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), {});
|
|
460
|
-
await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
461
|
-
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u903B\u8F91...");
|
|
462
|
-
const \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
|
|
463
|
-
await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
|
|
464
|
-
await log.debug("\u51C6\u5907\u6267\u884C\u8FD4\u56DE\u903B\u8F91...");
|
|
465
|
-
await \u63A5\u53E3\u7ED3\u679C.run(req, res);
|
|
466
|
-
await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
|
|
467
|
-
return;
|
|
468
|
-
}
|
|
469
|
-
await log.debug("\u6CA1\u6709\u547D\u4E2D\u63A5\u53E3");
|
|
470
529
|
await log.debug("\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u8D44\u6E90");
|
|
471
530
|
res.status(404);
|
|
472
531
|
res.end();
|
|
@@ -478,12 +537,29 @@ var \u670D\u52A1\u5668 = class {
|
|
|
478
537
|
res.send("\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF");
|
|
479
538
|
}
|
|
480
539
|
});
|
|
481
|
-
var server =
|
|
482
|
-
|
|
483
|
-
|
|
540
|
+
var server = app.listen(this.\u7AEF\u53E3);
|
|
541
|
+
var wss = new import_ws2.WebSocketServer({ server });
|
|
542
|
+
wss.on("connection", async (ws, req) => {
|
|
543
|
+
var log = (await this.log).extend("WebSocket").extend((0, import_short_uuid.default)().new());
|
|
544
|
+
await log.debug(`WebSocket \u8BF7\u6C42\u8FDE\u63A5: ${req.url}`);
|
|
545
|
+
var WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
|
|
546
|
+
var \u5BA2\u6237\u7AEFid = req.url?.split("?id=")[1];
|
|
547
|
+
if (!\u5BA2\u6237\u7AEFid)
|
|
548
|
+
return ws.close(4001, "\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
549
|
+
if (await WebSocket\u7BA1\u7406\u80052.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid) == true)
|
|
550
|
+
return ws.close(4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
|
|
551
|
+
var \u5B58\u5728\u7684\u5BA2\u6237\u7AEFid = \u5BA2\u6237\u7AEFid;
|
|
552
|
+
await WebSocket\u7BA1\u7406\u80052.\u589E\u52A0\u8FDE\u63A5(\u5BA2\u6237\u7AEFid, ws);
|
|
553
|
+
await log.debug(`WebSocket \u8FDE\u63A5\u5DF2\u5EFA\u7ACB, \u5BA2\u6237\u7AEFid: ${\u5BA2\u6237\u7AEFid}`);
|
|
554
|
+
ws.on("close", async () => {
|
|
555
|
+
await log.debug(`WebSocket \u8FDE\u63A5\u5DF2\u5173\u95ED: ${\u5BA2\u6237\u7AEFid}`);
|
|
556
|
+
await WebSocket\u7BA1\u7406\u80052.\u5220\u9664\u8FDE\u63A5(\u5B58\u5728\u7684\u5BA2\u6237\u7AEFid);
|
|
557
|
+
});
|
|
558
|
+
ws.on("error", async (err) => {
|
|
559
|
+
await log.err(`WebSocket \u51FA\u73B0\u9519\u8BEF ${\u5BA2\u6237\u7AEFid}: %o`, err);
|
|
560
|
+
await WebSocket\u7BA1\u7406\u80052.\u5220\u9664\u8FDE\u63A5(\u5B58\u5728\u7684\u5BA2\u6237\u7AEFid);
|
|
561
|
+
});
|
|
484
562
|
});
|
|
485
|
-
if (server == null)
|
|
486
|
-
throw new Error("\u542F\u52A8\u670D\u52A1\u5668\u5931\u8D25");
|
|
487
563
|
return {
|
|
488
564
|
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}`),
|
|
489
565
|
server
|
|
@@ -496,6 +572,7 @@ var \u670D\u52A1\u5668 = class {
|
|
|
496
572
|
JSON\u72B6\u6001\u63A5\u53E3,
|
|
497
573
|
JSON\u72B6\u6001\u63A5\u53E3\u7C7B\u578B,
|
|
498
574
|
JSON\u89E3\u6790\u63D2\u4EF6,
|
|
575
|
+
WebSocket\u63D2\u4EF6,
|
|
499
576
|
\u4E1A\u52A1\u884C\u4E3A,
|
|
500
577
|
\u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6,
|
|
501
578
|
\u63A5\u53E3,
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -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 {
|
|
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,9 +27,33 @@ 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
|
|
|
@@ -29,9 +29,33 @@ 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
|
|
|
@@ -39,9 +39,33 @@ 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
|
|
|
@@ -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 插件项类型 };
|
|
@@ -32,9 +32,33 @@ module.exports = __toCommonJS(result_exports);
|
|
|
32
32
|
// src/global/global.ts
|
|
33
33
|
var import_ts_global = require("@lsby/ts-global");
|
|
34
34
|
var import_ts_log = require("@lsby/ts-log");
|
|
35
|
+
|
|
36
|
+
// src/global/ws.ts
|
|
37
|
+
var WebSocket\u7BA1\u7406\u8005 = class {
|
|
38
|
+
constructor(\u8FDE\u63A5\u8868) {
|
|
39
|
+
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
40
|
+
}
|
|
41
|
+
async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
|
|
42
|
+
this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
|
|
43
|
+
}
|
|
44
|
+
async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
|
|
45
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
|
|
46
|
+
}
|
|
47
|
+
async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
|
|
48
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
|
|
49
|
+
}
|
|
50
|
+
async \u5220\u9664\u8FDE\u63A5(id) {
|
|
51
|
+
delete this.\u8FDE\u63A5\u8868[id];
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// src/global/global.ts
|
|
35
56
|
var Global = new import_ts_global.GlobalService([
|
|
36
57
|
new import_ts_global.GlobalAsyncItem("log", async () => {
|
|
37
58
|
return new import_ts_log.Log("@lsby:net-core");
|
|
59
|
+
}),
|
|
60
|
+
new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
|
|
61
|
+
return new WebSocket\u7BA1\u7406\u8005({});
|
|
38
62
|
})
|
|
39
63
|
]);
|
|
40
64
|
|
|
@@ -36,13 +36,38 @@ module.exports = __toCommonJS(server_exports);
|
|
|
36
36
|
var import_node_os = require("os");
|
|
37
37
|
var import_express = __toESM(require("express"), 1);
|
|
38
38
|
var import_short_uuid = __toESM(require("short-uuid"), 1);
|
|
39
|
+
var import_ws2 = require("ws");
|
|
39
40
|
|
|
40
41
|
// src/global/global.ts
|
|
41
42
|
var import_ts_global = require("@lsby/ts-global");
|
|
42
43
|
var import_ts_log = require("@lsby/ts-log");
|
|
44
|
+
|
|
45
|
+
// src/global/ws.ts
|
|
46
|
+
var WebSocket\u7BA1\u7406\u8005 = class {
|
|
47
|
+
constructor(\u8FDE\u63A5\u8868) {
|
|
48
|
+
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
49
|
+
}
|
|
50
|
+
async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
|
|
51
|
+
this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
|
|
52
|
+
}
|
|
53
|
+
async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
|
|
54
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
|
|
55
|
+
}
|
|
56
|
+
async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
|
|
57
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
|
|
58
|
+
}
|
|
59
|
+
async \u5220\u9664\u8FDE\u63A5(id) {
|
|
60
|
+
delete this.\u8FDE\u63A5\u8868[id];
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// src/global/global.ts
|
|
43
65
|
var Global = new import_ts_global.GlobalService([
|
|
44
66
|
new import_ts_global.GlobalAsyncItem("log", async () => {
|
|
45
67
|
return new import_ts_log.Log("@lsby:net-core");
|
|
68
|
+
}),
|
|
69
|
+
new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
|
|
70
|
+
return new WebSocket\u7BA1\u7406\u8005({});
|
|
46
71
|
})
|
|
47
72
|
]);
|
|
48
73
|
|
|
@@ -55,16 +80,35 @@ var \u670D\u52A1\u5668 = class {
|
|
|
55
80
|
}
|
|
56
81
|
log = Global.getItem("log");
|
|
57
82
|
async run() {
|
|
58
|
-
|
|
83
|
+
var app = (0, import_express.default)();
|
|
59
84
|
app.use(async (req, res) => {
|
|
60
85
|
var log = (await this.log).extend("\u8BF7\u6C42").extend((0, import_short_uuid.default)().new());
|
|
61
86
|
try {
|
|
62
|
-
|
|
63
|
-
|
|
87
|
+
var \u8BF7\u6C42\u8DEF\u5F84 = req.path;
|
|
88
|
+
var \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
|
|
64
89
|
await log.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
90
|
+
await log.debug("\u5C1D\u8BD5\u5339\u914D\u63A5\u53E3...");
|
|
91
|
+
var \u76EE\u6807\u63A5\u53E3 = this.\u63A5\u53E3\u4EEC.find((\u63A5\u53E3) => {
|
|
92
|
+
var \u63A5\u53E3\u7C7B\u578B2 = \u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
93
|
+
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();
|
|
94
|
+
});
|
|
95
|
+
if (\u76EE\u6807\u63A5\u53E3 != null) {
|
|
96
|
+
await log.debug("\u547D\u4E2D\u63A5\u53E3");
|
|
97
|
+
var \u63A5\u53E3\u7C7B\u578B = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
98
|
+
var \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
|
|
99
|
+
await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63A5\u53E3\u63D2\u4EF6.length);
|
|
100
|
+
var \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF6) => await (await \u63D2\u4EF6.run()).\u83B7\u5F97\u5B9E\u73B0()(req, res)))).reduce((s, a) => Object.assign(s, a), {});
|
|
101
|
+
await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
102
|
+
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u903B\u8F91...");
|
|
103
|
+
var \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
|
|
104
|
+
await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
|
|
105
|
+
await log.debug("\u51C6\u5907\u6267\u884C\u8FD4\u56DE\u903B\u8F91...");
|
|
106
|
+
await \u63A5\u53E3\u7ED3\u679C.run(req, res);
|
|
107
|
+
await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
await log.debug("\u6CA1\u6709\u547D\u4E2D\u63A5\u53E3");
|
|
111
|
+
if (this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 && req.method.toLowerCase() == "get") {
|
|
68
112
|
await log.debug("\u5C1D\u8BD5\u5339\u914D\u9759\u6001\u8D44\u6E90...");
|
|
69
113
|
import_express.default.static(this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84, {
|
|
70
114
|
setHeaders: async () => {
|
|
@@ -72,27 +116,6 @@ var \u670D\u52A1\u5668 = class {
|
|
|
72
116
|
}
|
|
73
117
|
})(req, res, async () => {
|
|
74
118
|
await log.debug("\u6CA1\u6709\u547D\u4E2D\u9759\u6001\u8D44\u6E90");
|
|
75
|
-
await log.debug("\u5C1D\u8BD5\u5339\u914D\u63A5\u53E3...");
|
|
76
|
-
const \u76EE\u6807\u63A5\u53E3 = this.\u63A5\u53E3\u4EEC.find((\u63A5\u53E3) => {
|
|
77
|
-
const \u63A5\u53E3\u7C7B\u578B = \u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
78
|
-
return \u8BF7\u6C42\u8DEF\u5F84 == \u63A5\u53E3\u7C7B\u578B.\u83B7\u5F97\u8DEF\u5F84() && \u8BF7\u6C42\u65B9\u6CD5 == \u63A5\u53E3\u7C7B\u578B.\u83B7\u5F97\u65B9\u6CD5();
|
|
79
|
-
});
|
|
80
|
-
if (\u76EE\u6807\u63A5\u53E3 != null) {
|
|
81
|
-
await log.debug("\u547D\u4E2D\u63A5\u53E3");
|
|
82
|
-
const \u63A5\u53E3\u7C7B\u578B = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
83
|
-
const \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
|
|
84
|
-
await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63A5\u53E3\u63D2\u4EF6.length);
|
|
85
|
-
const \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF6) => await (await \u63D2\u4EF6.run()).\u83B7\u5F97\u5B9E\u73B0()(req, res)))).reduce((s, a) => Object.assign(s, a), {});
|
|
86
|
-
await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
87
|
-
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u903B\u8F91...");
|
|
88
|
-
const \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
|
|
89
|
-
await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
|
|
90
|
-
await log.debug("\u51C6\u5907\u6267\u884C\u8FD4\u56DE\u903B\u8F91...");
|
|
91
|
-
await \u63A5\u53E3\u7ED3\u679C.run(req, res);
|
|
92
|
-
await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
await log.debug("\u6CA1\u6709\u547D\u4E2D\u63A5\u53E3");
|
|
96
119
|
await log.debug("\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u8D44\u6E90");
|
|
97
120
|
res.status(404);
|
|
98
121
|
res.end();
|
|
@@ -104,12 +127,29 @@ var \u670D\u52A1\u5668 = class {
|
|
|
104
127
|
res.send("\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF");
|
|
105
128
|
}
|
|
106
129
|
});
|
|
107
|
-
var server =
|
|
108
|
-
|
|
109
|
-
|
|
130
|
+
var server = app.listen(this.\u7AEF\u53E3);
|
|
131
|
+
var wss = new import_ws2.WebSocketServer({ server });
|
|
132
|
+
wss.on("connection", async (ws, req) => {
|
|
133
|
+
var log = (await this.log).extend("WebSocket").extend((0, import_short_uuid.default)().new());
|
|
134
|
+
await log.debug(`WebSocket \u8BF7\u6C42\u8FDE\u63A5: ${req.url}`);
|
|
135
|
+
var WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
|
|
136
|
+
var \u5BA2\u6237\u7AEFid = req.url?.split("?id=")[1];
|
|
137
|
+
if (!\u5BA2\u6237\u7AEFid)
|
|
138
|
+
return ws.close(4001, "\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
139
|
+
if (await WebSocket\u7BA1\u7406\u80052.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid) == true)
|
|
140
|
+
return ws.close(4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
|
|
141
|
+
var \u5B58\u5728\u7684\u5BA2\u6237\u7AEFid = \u5BA2\u6237\u7AEFid;
|
|
142
|
+
await WebSocket\u7BA1\u7406\u80052.\u589E\u52A0\u8FDE\u63A5(\u5BA2\u6237\u7AEFid, ws);
|
|
143
|
+
await log.debug(`WebSocket \u8FDE\u63A5\u5DF2\u5EFA\u7ACB, \u5BA2\u6237\u7AEFid: ${\u5BA2\u6237\u7AEFid}`);
|
|
144
|
+
ws.on("close", async () => {
|
|
145
|
+
await log.debug(`WebSocket \u8FDE\u63A5\u5DF2\u5173\u95ED: ${\u5BA2\u6237\u7AEFid}`);
|
|
146
|
+
await WebSocket\u7BA1\u7406\u80052.\u5220\u9664\u8FDE\u63A5(\u5B58\u5728\u7684\u5BA2\u6237\u7AEFid);
|
|
147
|
+
});
|
|
148
|
+
ws.on("error", async (err) => {
|
|
149
|
+
await log.err(`WebSocket \u51FA\u73B0\u9519\u8BEF ${\u5BA2\u6237\u7AEFid}: %o`, err);
|
|
150
|
+
await WebSocket\u7BA1\u7406\u80052.\u5220\u9664\u8FDE\u63A5(\u5B58\u5728\u7684\u5BA2\u6237\u7AEFid);
|
|
151
|
+
});
|
|
110
152
|
});
|
|
111
|
-
if (server == null)
|
|
112
|
-
throw new Error("\u542F\u52A8\u670D\u52A1\u5668\u5931\u8D25");
|
|
113
153
|
return {
|
|
114
154
|
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}`),
|
|
115
155
|
server
|