vona-module-a-socket 5.0.0 → 5.1.2

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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/cli/socketConnection/boilerplate/{{sceneName}}.{{beanName}}.ts_ +20 -0
  3. package/cli/socketNamespace/boilerplate/{{sceneName}}.{{beanName}}.ts_ +17 -0
  4. package/cli/socketPacket/boilerplate/{{sceneName}}.{{beanName}}.ts_ +15 -0
  5. package/dist/.metadata/index.d.ts +260 -0
  6. package/dist/.metadata/index.d.ts.map +1 -0
  7. package/dist/.metadata/this.d.ts +3 -0
  8. package/dist/.metadata/this.d.ts.map +1 -0
  9. package/dist/bean/bean.socket.d.ts +16 -0
  10. package/dist/bean/bean.socket.d.ts.map +1 -0
  11. package/dist/bean/broadcast.broadcast.d.ts +14 -0
  12. package/dist/bean/broadcast.broadcast.d.ts.map +1 -0
  13. package/dist/bean/broadcast.send.d.ts +13 -0
  14. package/dist/bean/broadcast.send.d.ts.map +1 -0
  15. package/dist/bean/hmr.socketConnection.d.ts +7 -0
  16. package/dist/bean/hmr.socketConnection.d.ts.map +1 -0
  17. package/dist/bean/hmr.socketPacket.d.ts +7 -0
  18. package/dist/bean/hmr.socketPacket.d.ts.map +1 -0
  19. package/dist/bean/socketConnection.alive.d.ts +14 -0
  20. package/dist/bean/socketConnection.alive.d.ts.map +1 -0
  21. package/dist/bean/socketConnection.app.d.ts +11 -0
  22. package/dist/bean/socketConnection.app.d.ts.map +1 -0
  23. package/dist/bean/socketConnection.cors.d.ts +11 -0
  24. package/dist/bean/socketConnection.cors.d.ts.map +1 -0
  25. package/dist/bean/socketConnection.event.d.ts +11 -0
  26. package/dist/bean/socketConnection.event.d.ts.map +1 -0
  27. package/dist/bean/socketConnection.instance.d.ts +11 -0
  28. package/dist/bean/socketConnection.instance.d.ts.map +1 -0
  29. package/dist/bean/socketConnection.passport.d.ts +12 -0
  30. package/dist/bean/socketConnection.passport.d.ts.map +1 -0
  31. package/dist/bean/socketConnection.ready.d.ts +11 -0
  32. package/dist/bean/socketConnection.ready.d.ts.map +1 -0
  33. package/dist/bean/socketPacket.event.d.ts +10 -0
  34. package/dist/bean/socketPacket.event.d.ts.map +1 -0
  35. package/dist/bean/socketPacket.performAction.d.ts +11 -0
  36. package/dist/bean/socketPacket.performAction.d.ts.map +1 -0
  37. package/dist/config/config.d.ts +15 -0
  38. package/dist/config/config.d.ts.map +1 -0
  39. package/dist/index.d.ts +4 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +632 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/lib/beanSocketNamespaceBase.d.ts +7 -0
  44. package/dist/lib/beanSocketNamespaceBase.d.ts.map +1 -0
  45. package/dist/lib/const.d.ts +8 -0
  46. package/dist/lib/const.d.ts.map +1 -0
  47. package/dist/lib/index.d.ts +6 -0
  48. package/dist/lib/index.d.ts.map +1 -0
  49. package/dist/lib/socketConnection.d.ts +3 -0
  50. package/dist/lib/socketConnection.d.ts.map +1 -0
  51. package/dist/lib/socketNamespace.d.ts +4 -0
  52. package/dist/lib/socketNamespace.d.ts.map +1 -0
  53. package/dist/lib/socketPacket.d.ts +3 -0
  54. package/dist/lib/socketPacket.d.ts.map +1 -0
  55. package/dist/monkey.d.ts +7 -0
  56. package/dist/monkey.d.ts.map +1 -0
  57. package/dist/service/socket.d.ts +13 -0
  58. package/dist/service/socket.d.ts.map +1 -0
  59. package/dist/service/socketEvent.d.ts +10 -0
  60. package/dist/service/socketEvent.d.ts.map +1 -0
  61. package/dist/types/index.d.ts +6 -0
  62. package/dist/types/index.d.ts.map +1 -0
  63. package/dist/types/socket.d.ts +18 -0
  64. package/dist/types/socket.d.ts.map +1 -0
  65. package/dist/types/socketConnection.d.ts +34 -0
  66. package/dist/types/socketConnection.d.ts.map +1 -0
  67. package/dist/types/socketEvent.d.ts +46 -0
  68. package/dist/types/socketEvent.d.ts.map +1 -0
  69. package/dist/types/socketNamespace.d.ts +23 -0
  70. package/dist/types/socketNamespace.d.ts.map +1 -0
  71. package/dist/types/socketPacket.d.ts +25 -0
  72. package/dist/types/socketPacket.d.ts.map +1 -0
  73. package/package.json +58 -22
  74. package/src/.metadata/index.ts +359 -0
  75. package/src/.metadata/this.ts +2 -0
  76. package/src/bean/bean.socket.ts +60 -0
  77. package/src/bean/broadcast.broadcast.ts +23 -0
  78. package/src/bean/broadcast.send.ts +22 -0
  79. package/src/bean/hmr.socketConnection.ts +14 -0
  80. package/src/bean/hmr.socketPacket.ts +14 -0
  81. package/src/bean/socketConnection.alive.ts +48 -0
  82. package/src/bean/socketConnection.app.ts +26 -0
  83. package/src/bean/socketConnection.cors.ts +27 -0
  84. package/src/bean/socketConnection.event.ts +34 -0
  85. package/src/bean/socketConnection.instance.ts +23 -0
  86. package/src/bean/socketConnection.passport.ts +37 -0
  87. package/src/bean/socketConnection.ready.ts +21 -0
  88. package/src/bean/socketPacket.event.ts +29 -0
  89. package/src/bean/socketPacket.performAction.ts +37 -0
  90. package/src/config/config.ts +19 -0
  91. package/src/index.ts +3 -0
  92. package/src/lib/beanSocketNamespaceBase.ts +15 -0
  93. package/src/lib/const.ts +22 -0
  94. package/src/lib/index.ts +5 -0
  95. package/src/lib/socketConnection.ts +7 -0
  96. package/src/lib/socketNamespace.ts +9 -0
  97. package/src/lib/socketPacket.ts +7 -0
  98. package/src/monkey.ts +15 -0
  99. package/src/service/socket.ts +180 -0
  100. package/src/service/socketEvent.ts +30 -0
  101. package/src/types/index.ts +5 -0
  102. package/src/types/socket.ts +21 -0
  103. package/src/types/socketConnection.ts +41 -0
  104. package/src/types/socketEvent.ts +55 -0
  105. package/src/types/socketNamespace.ts +27 -0
  106. package/src/types/socketPacket.ts +30 -0
  107. package/README.md +0 -1
package/dist/index.js ADDED
@@ -0,0 +1,632 @@
1
+ import { BeanInfo, BeanBase, uuidv4, createBeanDecorator, cast, $customKey, BeanSimple, BeanScopeBase } from 'vona';
2
+ import { __decorate } from 'tslib';
3
+ import { Bean, Service, Scope } from 'vona-module-a-bean';
4
+ import { compose } from '@cabloy/compose';
5
+ import { AsyncResource } from 'node:async_hooks';
6
+ import { URL } from 'node:url';
7
+ import { WebSocketServer } from 'ws';
8
+ import { Broadcast, BeanBroadcastBase } from 'vona-module-a-broadcast';
9
+ import { SocketConnection as SocketConnection$1 } from 'vona-module-a-socket';
10
+ import { Hmr } from 'vona-module-a-hmrbase';
11
+
12
+ let BeanSocket = class BeanSocket extends BeanBase {
13
+ constructor(...args) {
14
+ super(...args);
15
+ this._clients = {};
16
+ this._clientsNamespace = {};
17
+ }
18
+ async __dispose__() {
19
+ this.close();
20
+ }
21
+ close() {
22
+ const clients = this._clients;
23
+ this._clients = {};
24
+ for (const id in clients) {
25
+ clients[id]?.terminate();
26
+ }
27
+ }
28
+ get clients() {
29
+ return this._clients;
30
+ }
31
+ get clientsNamespace() {
32
+ return this._clientsNamespace;
33
+ }
34
+ getClient(id) {
35
+ return this._clients[id];
36
+ }
37
+ addClient(ws) {
38
+ const id = ws.id;
39
+ const namespace = ws.namespace;
40
+ this._clients[id] = ws;
41
+ if (!this._clientsNamespace[namespace]) this._clientsNamespace[namespace] = [];
42
+ this._clientsNamespace[namespace].push(id);
43
+ }
44
+ removeClient(ws) {
45
+ const id = typeof ws === 'string' ? ws : ws.id;
46
+ const ws2 = this.getClient(id);
47
+ if (!ws2) return;
48
+ const namespace = ws2.namespace;
49
+ delete this._clients[id];
50
+ if (this._clientsNamespace[namespace]) {
51
+ const index = this._clientsNamespace[namespace].indexOf(id);
52
+ if (index !== -1) {
53
+ this._clientsNamespace[namespace].splice(index, 1);
54
+ }
55
+ }
56
+ }
57
+ };
58
+ BeanSocket = __decorate([Bean(), BeanInfo({
59
+ module: "a-socket"
60
+ })], BeanSocket);
61
+
62
+ const SymbolCacheSocketConnections = Symbol('SymbolCacheSocketConnections');
63
+ const SymbolCacheSocketPackets = Symbol('SymbolCacheSocketPackets');
64
+ function getCacheSocketConnections(app) {
65
+ if (!app.meta[SymbolCacheSocketConnections]) app.meta[SymbolCacheSocketConnections] = {};
66
+ return app.meta[SymbolCacheSocketConnections];
67
+ }
68
+ function clearAllCacheSocketConnections(app) {
69
+ delete app.meta[SymbolCacheSocketConnections];
70
+ }
71
+ function getCacheSocketPackets(app) {
72
+ if (!app.meta[SymbolCacheSocketPackets]) app.meta[SymbolCacheSocketPackets] = {};
73
+ return app.meta[SymbolCacheSocketPackets];
74
+ }
75
+ function clearAllCacheSocketPackets(app) {
76
+ delete app.meta[SymbolCacheSocketPackets];
77
+ }
78
+
79
+ let ServiceSocket = class ServiceSocket extends BeanBase {
80
+ async appReady() {
81
+ // maybe running in play
82
+ if (!this.app.server) return;
83
+ // wss
84
+ this.app.wss = new WebSocketServer({
85
+ server: this.app.server
86
+ });
87
+ this.app.wss.on('connection', (ws, req) => {
88
+ this._onConnection(ws, req);
89
+ });
90
+ }
91
+ async appClose() {
92
+ this.app.wss.close();
93
+ this.bean.socket.close();
94
+ }
95
+ async _onConnection(ws, req) {
96
+ if (this.app.meta.appClose) {
97
+ // terminate
98
+ ws.terminate();
99
+ return;
100
+ }
101
+ const url = URL.parse(req.url ?? '', `https://${req.headers.host}`); // req.headers.host 'http://localhost'
102
+ const instanceName = url?.searchParams.get(this.scope.config.queryKey.instanceName) || undefined;
103
+ const locale = url?.searchParams.get(this.scope.config.queryKey.locale) || undefined;
104
+ const tz = url?.searchParams.get(this.scope.config.queryKey.tz) || undefined;
105
+ // enter
106
+ return await this.app.bean.executor.newCtx(async () => {
107
+ const ctx = this.app.ctx;
108
+ // ws
109
+ Object.defineProperty(ctx, 'ws', {
110
+ get() {
111
+ return ws;
112
+ }
113
+ });
114
+ // enter
115
+ try {
116
+ // namespace
117
+ ws.namespace = this.getNamespace();
118
+ // id
119
+ ws.id = uuidv4();
120
+ // add
121
+ this.bean.socket.addClient(ws);
122
+ // compose
123
+ await this._getComposeSocketConnections(ws.namespace)({
124
+ method: 'enter',
125
+ ws
126
+ });
127
+ } catch (err) {
128
+ this.app.handleError(err);
129
+ // terminate
130
+ ws.terminate();
131
+ return;
132
+ }
133
+ // promise
134
+ return new Promise(resolve => {
135
+ // exit
136
+ ws.onclose = AsyncResource.bind(async () => {
137
+ try {
138
+ // compose
139
+ await this._getComposeSocketConnections(ws.namespace)({
140
+ method: 'exit',
141
+ ws
142
+ });
143
+ } catch (err) {
144
+ this.app.handleError(err);
145
+ } finally {
146
+ // remove
147
+ this.bean.socket.removeClient(ws);
148
+ resolve(undefined);
149
+ }
150
+ });
151
+ // message
152
+ ws.onmessage = AsyncResource.bind(async event => {
153
+ try {
154
+ await this._getComposeSocketPackets(ws.namespace)({
155
+ data: event.data,
156
+ ws
157
+ });
158
+ } catch (err) {
159
+ this.app.handleError(err);
160
+ }
161
+ });
162
+ // error
163
+ ws.onerror = AsyncResource.bind(event => {
164
+ this.$logger.error(event.error);
165
+ });
166
+ // onReady
167
+ ws.sendEvent('sysReady');
168
+ });
169
+ }, {
170
+ dbInfo: {
171
+ level: 0
172
+ },
173
+ innerAccess: false,
174
+ req,
175
+ instanceName,
176
+ locale,
177
+ tz
178
+ }); // not set instance: true
179
+ }
180
+ getNamespace() {
181
+ const globalPrefix = this.scope.config.globalPrefix;
182
+ let path = this.ctx.path;
183
+ if (path.startsWith(globalPrefix)) {
184
+ path = path.substring(globalPrefix.length);
185
+ }
186
+ if (!path) path = '/';
187
+ return path;
188
+ }
189
+ _getComposeSocketConnections(namespace) {
190
+ const cacheSocketConnections = getCacheSocketConnections(this.app);
191
+ if (!cacheSocketConnections[namespace]) {
192
+ const connections = this.bean.onion.socketConnection.getOnionsEnabledWrapped(item => {
193
+ return this._wrapOnionConnection(item);
194
+ });
195
+ cacheSocketConnections[namespace] = compose(connections);
196
+ }
197
+ return cacheSocketConnections[namespace];
198
+ }
199
+ _getComposeSocketPackets(namespace) {
200
+ const cacheSocketPackets = getCacheSocketPackets(this.app);
201
+ if (!cacheSocketPackets[namespace]) {
202
+ const packets = this.bean.onion.socketPacket.getOnionsEnabledWrapped(item => {
203
+ return this._wrapOnionPacket(item);
204
+ });
205
+ cacheSocketPackets[namespace] = compose(packets);
206
+ }
207
+ return cacheSocketPackets[namespace];
208
+ }
209
+ _wrapOnionConnection(item) {
210
+ const fn = (data, next) => {
211
+ const options = item.beanOptions.options;
212
+ // execute
213
+ const beanFullName = item.beanOptions.beanFullName;
214
+ const beanInstance = this.app.bean._getBean(beanFullName);
215
+ if (!beanInstance) {
216
+ throw new Error(`socketConnection bean not found: ${beanFullName}`);
217
+ }
218
+ return beanInstance[data.method](data.ws, options, next);
219
+ };
220
+ fn._name = item.name;
221
+ return fn;
222
+ }
223
+ _wrapOnionPacket(item) {
224
+ const fn = (data, next) => {
225
+ const options = item.beanOptions.options;
226
+ // execute
227
+ const beanFullName = item.beanOptions.beanFullName;
228
+ const beanInstance = this.app.bean._getBean(beanFullName);
229
+ if (!beanInstance) {
230
+ throw new Error(`socketPacket bean not found: ${beanFullName}`);
231
+ }
232
+ return beanInstance.execute(data.data, data.ws, options, _patchPacketNext(data, next));
233
+ };
234
+ fn._name = item.name;
235
+ return fn;
236
+ }
237
+ };
238
+ ServiceSocket = __decorate([Service(), BeanInfo({
239
+ module: "a-socket"
240
+ })], ServiceSocket);
241
+ function _patchPacketNext(data, next) {
242
+ return (...args) => {
243
+ const context = args.length === 0 ? data.data : args[0];
244
+ return next({
245
+ data: context,
246
+ ws: data.ws
247
+ });
248
+ };
249
+ }
250
+
251
+ let ServiceSocketEvent = class ServiceSocketEvent extends BeanBase {
252
+ send(id, eventName, data, options) {
253
+ this.sendWorker(id, eventName, data, options);
254
+ this.scope.broadcast.send.emit({
255
+ id,
256
+ eventName,
257
+ data,
258
+ options
259
+ });
260
+ }
261
+ sendWorker(id, eventName, data, options) {
262
+ this.bean.socket.clients[id]?.sendEvent(eventName, data, options);
263
+ }
264
+ broadcast(namespace, eventName, data, options) {
265
+ this.broadcastWorker(namespace, eventName, data, options);
266
+ this.scope.broadcast.broadcast.emit({
267
+ namespace,
268
+ eventName,
269
+ data,
270
+ options
271
+ });
272
+ }
273
+ broadcastWorker(namespace, eventName, data, options) {
274
+ const ids = this.bean.socket.clientsNamespace[namespace];
275
+ if (!ids) return;
276
+ for (const id of ids) {
277
+ this.bean.socket.clients[id]?.sendEvent(eventName, data, options);
278
+ }
279
+ }
280
+ };
281
+ ServiceSocketEvent = __decorate([Service(), BeanInfo({
282
+ module: "a-socket"
283
+ })], ServiceSocketEvent);
284
+
285
+ let BroadcastBroadcast = class BroadcastBroadcast extends BeanBroadcastBase {
286
+ async execute(data, isEmitter) {
287
+ const {
288
+ namespace,
289
+ eventName,
290
+ data: eventData,
291
+ options
292
+ } = data;
293
+ if (!isEmitter) {
294
+ this.scope.service.socketEvent.broadcastWorker(namespace, eventName, eventData, options);
295
+ }
296
+ }
297
+ };
298
+ BroadcastBroadcast = __decorate([Broadcast(), BeanInfo({
299
+ module: "a-socket"
300
+ })], BroadcastBroadcast);
301
+
302
+ let BroadcastSend = class BroadcastSend extends BeanBroadcastBase {
303
+ async execute(data, isEmitter) {
304
+ const {
305
+ id,
306
+ eventName,
307
+ data: eventData,
308
+ options
309
+ } = data;
310
+ if (!isEmitter) {
311
+ this.scope.service.socketEvent.sendWorker(id, eventName, eventData, options);
312
+ }
313
+ }
314
+ };
315
+ BroadcastSend = __decorate([Broadcast(), BeanInfo({
316
+ module: "a-socket"
317
+ })], BroadcastSend);
318
+
319
+ let SocketConnectionAlive = class SocketConnectionAlive extends BeanBase {
320
+ constructor(...args) {
321
+ super(...args);
322
+ this._interval = void 0;
323
+ }
324
+ async __dispose__() {
325
+ if (this._interval) {
326
+ clearInterval(this._interval);
327
+ this._interval = null;
328
+ }
329
+ }
330
+ async enter(ws, _options, next) {
331
+ // isAlive
332
+ ws.isAlive = true;
333
+ ws.on('pong', () => {
334
+ ws.isAlive = true;
335
+ });
336
+ // start interval
337
+ this._startInterval();
338
+ // next
339
+ return next();
340
+ }
341
+ async exit(_ws, _options, next) {
342
+ // next
343
+ await next();
344
+ }
345
+ _startInterval() {
346
+ if (this._interval) return;
347
+ this._interval = setInterval(() => {
348
+ this.app.wss.clients.forEach(ws => {
349
+ if (ws.isAlive === false) return ws.terminate();
350
+ ws.isAlive = false;
351
+ ws.ping();
352
+ });
353
+ }, this.scope.config.timeout.ping);
354
+ }
355
+ };
356
+ SocketConnectionAlive = __decorate([SocketConnection$1(), BeanInfo({
357
+ module: "a-socket"
358
+ })], SocketConnectionAlive);
359
+
360
+ let SocketConnectionApp = class SocketConnectionApp extends BeanBase {
361
+ async enter(_ws, _options, next) {
362
+ // check appReady
363
+ if (!this.ctx.innerAccess) {
364
+ if (this.app.meta.appClose) this.app.throw(423);
365
+ await this.$scope.instance.service.instance.checkAppReady();
366
+ }
367
+ // next
368
+ return next();
369
+ }
370
+ async exit(_ws, _options, next) {
371
+ // next
372
+ return next();
373
+ }
374
+ };
375
+ SocketConnectionApp = __decorate([SocketConnection$1({
376
+ dependencies: 'a-socket:alive'
377
+ }), BeanInfo({
378
+ module: "a-socket"
379
+ })], SocketConnectionApp);
380
+
381
+ let SocketConnectionCors = class SocketConnectionCors extends BeanBase {
382
+ async enter(ws, _options, next) {
383
+ // cors
384
+ const origin = this.bean.security.checkOrigin(this.ctx.get('origin'), this.ctx.host);
385
+ if (!origin) {
386
+ ws.terminate();
387
+ return;
388
+ }
389
+ // next
390
+ return next();
391
+ }
392
+ async exit(_ws, _options, next) {
393
+ // next
394
+ return next();
395
+ }
396
+ };
397
+ SocketConnectionCors = __decorate([SocketConnection$1({
398
+ dependencies: 'a-socket:instance'
399
+ }), BeanInfo({
400
+ module: "a-socket"
401
+ })], SocketConnectionCors);
402
+
403
+ function SocketConnection(options) {
404
+ return createBeanDecorator('socketConnection', options);
405
+ }
406
+
407
+ const socketEventRecord = {
408
+ sysReady: '_a',
409
+ sysPerformAction: '_b',
410
+ sysPerformActionBack: '_c'
411
+ };
412
+ const socketEventRecordReverse = {
413
+ _a: 'sysReady',
414
+ _b: 'sysPerformAction',
415
+ _c: 'sysPerformActionBack'
416
+ };
417
+
418
+ let SocketConnectionEvent = class SocketConnectionEvent extends BeanBase {
419
+ async enter(ws, _options, next) {
420
+ // sendEvent
421
+ cast(ws).sendEvent = (eventName, data, options, cb) => {
422
+ if (typeof options === 'function') {
423
+ cb = options;
424
+ options = {};
425
+ }
426
+ const eventNameInner = socketEventRecord[eventName] ?? eventName;
427
+ ws.send(`${this.scope.config.eventPrefix}${JSON.stringify([eventNameInner, data])}`, options, cb);
428
+ };
429
+ // next
430
+ return next();
431
+ }
432
+ async exit(_ws, _options, next) {
433
+ // next
434
+ return next();
435
+ }
436
+ };
437
+ SocketConnectionEvent = __decorate([SocketConnection({
438
+ dependencies: 'a-socket:cors'
439
+ }), BeanInfo({
440
+ module: "a-socket"
441
+ })], SocketConnectionEvent);
442
+
443
+ let SocketConnectionInstance = class SocketConnectionInstance extends BeanBase {
444
+ async enter(_ws, _options, next) {
445
+ // init instance
446
+ await this.$scope.instance.service.instance.initInstance();
447
+ // next
448
+ return next();
449
+ }
450
+ async exit(_ws, _options, next) {
451
+ // next
452
+ return next();
453
+ }
454
+ };
455
+ SocketConnectionInstance = __decorate([SocketConnection$1({
456
+ dependencies: 'a-socket:app'
457
+ }), BeanInfo({
458
+ module: "a-socket"
459
+ })], SocketConnectionInstance);
460
+
461
+ let SocketConnectionPassport = class SocketConnectionPassport extends BeanBase {
462
+ async enter(ws, _options, next) {
463
+ // checkOauthCode
464
+ await this._checkOauthCode(ws);
465
+ // next
466
+ return next();
467
+ }
468
+ async exit(_ws, _options, next) {
469
+ // next
470
+ return next();
471
+ }
472
+ async _checkOauthCode(_ws) {
473
+ // auth token
474
+ if (!this.bean.passport.current) {
475
+ const code = this.ctx.query[this.scope.config.queryKey.passportCode];
476
+ if (code) {
477
+ await this.bean.passport.checkAuthToken(code, 'access', {
478
+ path: this.ctx.path
479
+ });
480
+ }
481
+ }
482
+ // check current
483
+ if (!this.bean.passport.current) {
484
+ await this.bean.passport.signinWithAnonymous();
485
+ }
486
+ }
487
+ };
488
+ SocketConnectionPassport = __decorate([SocketConnection$1({
489
+ dependencies: 'a-socket:event'
490
+ }), BeanInfo({
491
+ module: "a-socket"
492
+ })], SocketConnectionPassport);
493
+
494
+ let SocketConnectionReady = class SocketConnectionReady extends BeanBase {
495
+ async enter(_ws, _options, next) {
496
+ // next
497
+ return next();
498
+ }
499
+ async exit(_ws, _options, next) {
500
+ // next
501
+ return next();
502
+ }
503
+ };
504
+ SocketConnectionReady = __decorate([SocketConnection$1({
505
+ dependencies: 'a-socket:passport'
506
+ }), BeanInfo({
507
+ module: "a-socket"
508
+ })], SocketConnectionReady);
509
+
510
+ function SocketPacket(options) {
511
+ return createBeanDecorator('socketPacket', options);
512
+ }
513
+
514
+ let SocketPacketEvent = class SocketPacketEvent extends BeanBase {
515
+ async execute(data, _ws, _options, next) {
516
+ let packet;
517
+ const eventPrefix = this.scope.config.eventPrefix;
518
+ if (typeof data === 'string' && data.startsWith(eventPrefix)) {
519
+ const packetInner = JSON.parse(data.substring(eventPrefix.length));
520
+ const eventName = socketEventRecordReverse[packetInner[0]] ?? packetInner[0];
521
+ packet = [eventName, packetInner[1]];
522
+ } else {
523
+ packet = [undefined, data];
524
+ }
525
+ // next
526
+ return next(packet);
527
+ }
528
+ };
529
+ SocketPacketEvent = __decorate([SocketPacket(), BeanInfo({
530
+ module: "a-socket"
531
+ })], SocketPacketEvent);
532
+
533
+ let SocketPacketPerformAction = class SocketPacketPerformAction extends BeanBase {
534
+ async execute(packet, ws, _options, next) {
535
+ const eventName = packet[0];
536
+ const data = packet[1];
537
+ if (eventName !== 'sysPerformAction') return next();
538
+ try {
539
+ // performAction
540
+ const res = await this.$scope.executor.service.executor.performActionInner(data.m, data.p, {
541
+ innerAccess: false,
542
+ query: data.q,
543
+ body: data.b,
544
+ headers: data.h
545
+ });
546
+ ws.sendEvent('sysPerformActionBack', {
547
+ i: data.i,
548
+ c: 0,
549
+ d: res
550
+ });
551
+ } catch (err) {
552
+ ws.sendEvent('sysPerformActionBack', {
553
+ i: data.i,
554
+ c: err.code,
555
+ m: err.message
556
+ });
557
+ }
558
+ }
559
+ };
560
+ SocketPacketPerformAction = __decorate([SocketPacket({
561
+ dependencies: 'a-socket:event'
562
+ }), BeanInfo({
563
+ module: "a-socket"
564
+ })], SocketPacketPerformAction);
565
+
566
+ let HmrSocketConnection = class HmrSocketConnection extends BeanBase {
567
+ async reload(_beanOptions) {
568
+ clearAllCacheSocketConnections(this.app);
569
+ }
570
+ };
571
+ HmrSocketConnection = __decorate([Hmr(), BeanInfo({
572
+ module: "a-socket"
573
+ })], HmrSocketConnection);
574
+
575
+ let HmrSocketPacket = class HmrSocketPacket extends BeanBase {
576
+ async reload(_beanOptions) {
577
+ clearAllCacheSocketPackets(this.app);
578
+ }
579
+ };
580
+ HmrSocketPacket = __decorate([Hmr(), BeanInfo({
581
+ module: "a-socket"
582
+ })], HmrSocketPacket);
583
+
584
+ function config(_app) {
585
+ return {
586
+ eventPrefix: '_:',
587
+ globalPrefix: '/ws',
588
+ queryKey: {
589
+ passportCode: $customKey('x-vona-passport-code'),
590
+ instanceName: $customKey('x-vona-instance-name'),
591
+ locale: $customKey('x-vona-locale'),
592
+ tz: $customKey('x-vona-tz')
593
+ },
594
+ timeout: {
595
+ ping: 20000
596
+ }
597
+ };
598
+ }
599
+
600
+ const __ThisModule__ = 'a-socket';
601
+
602
+ class Monkey extends BeanSimple {
603
+ async appReady() {
604
+ await this.app.scope(__ThisModule__).service.socket.appReady();
605
+ }
606
+ async appClose() {
607
+ await this.app.scope(__ThisModule__).service.socket.appClose();
608
+ }
609
+ }
610
+
611
+ let ScopeModuleASocket = class ScopeModuleASocket extends BeanScopeBase {};
612
+ ScopeModuleASocket = __decorate([Scope(), BeanInfo({
613
+ module: "a-socket"
614
+ })], ScopeModuleASocket);
615
+ /** scope: end */
616
+
617
+ class BeanSocketNamespaceBase extends BeanBase {
618
+ send(id, eventName, data, options) {
619
+ this.$scope.socket.service.socketEvent.send(id, eventName, data, options);
620
+ }
621
+ broadcast(eventName, data, options) {
622
+ const namespace = cast(this.$onionOptions).namespace;
623
+ this.$scope.socket.service.socketEvent.broadcast(namespace, eventName, data, options);
624
+ }
625
+ }
626
+
627
+ function SocketNamespace(options) {
628
+ return createBeanDecorator('socketNamespace', options);
629
+ }
630
+
631
+ export { BeanSocket, BeanSocketNamespaceBase, BroadcastBroadcast, BroadcastSend, HmrSocketConnection, HmrSocketPacket, Monkey, ScopeModuleASocket, ServiceSocket, ServiceSocketEvent, SocketConnection, SocketConnectionAlive, SocketConnectionApp, SocketConnectionCors, SocketConnectionEvent, SocketConnectionInstance, SocketConnectionPassport, SocketConnectionReady, SocketNamespace, SocketPacket, SocketPacketEvent, SocketPacketPerformAction, SymbolCacheSocketConnections, SymbolCacheSocketPackets, clearAllCacheSocketConnections, clearAllCacheSocketPackets, config, getCacheSocketConnections, getCacheSocketPackets, socketEventRecord, socketEventRecordReverse };
632
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/bean/bean.socket.ts","../src/lib/const.ts","../src/service/socket.ts","../src/service/socketEvent.ts","../src/bean/broadcast.broadcast.ts","../src/bean/broadcast.send.ts","../src/bean/socketConnection.alive.ts","../src/bean/socketConnection.app.ts","../src/bean/socketConnection.cors.ts","../src/lib/socketConnection.ts","../src/types/socketEvent.ts","../src/bean/socketConnection.event.ts","../src/bean/socketConnection.instance.ts","../src/bean/socketConnection.passport.ts","../src/bean/socketConnection.ready.ts","../src/lib/socketPacket.ts","../src/bean/socketPacket.event.ts","../src/bean/socketPacket.performAction.ts","../src/bean/hmr.socketConnection.ts","../src/bean/hmr.socketPacket.ts","../src/config/config.ts","../src/.metadata/this.ts","../src/monkey.ts","../src/.metadata/index.ts","../src/lib/beanSocketNamespaceBase.ts","../src/lib/socketNamespace.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BeanSocket","BeanBase","constructor","args","_clients","_clientsNamespace","__dispose__","close","clients","id","terminate","clientsNamespace","getClient","addClient","ws","namespace","push","removeClient","ws2","index","indexOf","splice","__decorate","Bean","__z_BeanInfo","module","SymbolCacheSocketConnections","Symbol","SymbolCacheSocketPackets","getCacheSocketConnections","app","meta","clearAllCacheSocketConnections","getCacheSocketPackets","clearAllCacheSocketPackets","ServiceSocket","appReady","server","wss","WebSocketServer","on","req","_onConnection","appClose","bean","socket","url","URL","parse","headers","host","instanceName","searchParams","get","scope","config","queryKey","undefined","locale","tz","executor","newCtx","ctx","Object","defineProperty","getNamespace","uuidv4","_getComposeSocketConnections","method","err","handleError","Promise","resolve","onclose","AsyncResource","bind","onmessage","event","_getComposeSocketPackets","data","onerror","$logger","error","sendEvent","dbInfo","level","innerAccess","globalPrefix","path","startsWith","substring","length","cacheSocketConnections","connections","onion","socketConnection","getOnionsEnabledWrapped","item","_wrapOnionConnection","compose","cacheSocketPackets","packets","socketPacket","_wrapOnionPacket","fn","next","options","beanOptions","beanFullName","beanInstance","_getBean","Error","_name","name","execute","_patchPacketNext","Service","context","ServiceSocketEvent","send","eventName","sendWorker","broadcast","emit","broadcastWorker","ids","BroadcastBroadcast","BeanBroadcastBase","isEmitter","eventData","service","socketEvent","Broadcast","BroadcastSend","SocketConnectionAlive","_interval","clearInterval","enter","_options","isAlive","_startInterval","exit","_ws","setInterval","forEach","ping","timeout","SocketConnection","SocketConnectionApp","throw","$scope","instance","checkAppReady","dependencies","SocketConnectionCors","origin","security","checkOrigin","createBeanDecorator","socketEventRecord","sysReady","sysPerformAction","sysPerformActionBack","socketEventRecordReverse","_a","_b","_c","SocketConnectionEvent","cast","cb","eventNameInner","eventPrefix","JSON","stringify","SocketConnectionInstance","initInstance","SocketConnectionPassport","_checkOauthCode","passport","current","code","query","passportCode","checkAuthToken","signinWithAnonymous","SocketConnectionReady","SocketPacket","SocketPacketEvent","packet","packetInner","SocketPacketPerformAction","res","performActionInner","m","p","q","body","b","h","i","c","d","message","HmrSocketConnection","reload","_beanOptions","Hmr","HmrSocketPacket","_app","$customKey","__ThisModule__","Monkey","BeanSimple","ScopeModuleASocket","BeanScopeBase","Scope","BeanSocketNamespaceBase","$onionOptions","SocketNamespace"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { BeanBase } from 'vona';
2
+ import type { ISendEventOptions } from '../types/socketEvent.ts';
3
+ export declare class BeanSocketNamespaceBase<EVENTS extends {}> extends BeanBase {
4
+ send<K extends keyof EVENTS>(id: string, eventName: K, data?: EVENTS[K], options?: ISendEventOptions): void;
5
+ broadcast<K extends keyof EVENTS>(eventName: K, data?: EVENTS[K], options?: ISendEventOptions): void;
6
+ }
7
+ //# sourceMappingURL=beanSocketNamespaceBase.d.ts.map