phecda-server 6.1.0 → 7.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/bin/cli.mjs +160 -157
  2. package/dist/{chunk-3H3T54IC.mjs → chunk-5622RBNB.mjs} +3 -4
  3. package/dist/{chunk-NL6QBQAR.js → chunk-BGXSMOLX.js} +20 -21
  4. package/dist/{chunk-J7B24YSE.mjs → chunk-HMVLXNV3.mjs} +5 -14
  5. package/dist/{chunk-TVT62GIX.js → chunk-J5CFUN4V.js} +8 -1
  6. package/dist/{chunk-JDV2XJYE.js → chunk-MBCHNDAY.js} +27 -36
  7. package/dist/{chunk-2CFYUXPM.mjs → chunk-P75VKZJY.mjs} +101 -137
  8. package/dist/chunk-SW5IKE5H.js +503 -0
  9. package/dist/{chunk-G7TD2VB7.mjs → chunk-WHJ5FALK.mjs} +7 -0
  10. package/dist/{core-P1CsH6jz.d.mts → core-BIcUwV18.d.mts} +1 -1
  11. package/dist/{core-BlN0Spy9.d.ts → core-CYwEPfN4.d.ts} +1 -1
  12. package/dist/helper.d.mts +4 -6
  13. package/dist/helper.d.ts +4 -6
  14. package/dist/helper.js +3 -3
  15. package/dist/helper.mjs +2 -2
  16. package/dist/{server → http}/elysia/index.d.mts +5 -5
  17. package/dist/{server → http}/elysia/index.d.ts +5 -5
  18. package/dist/{server → http}/elysia/index.js +80 -62
  19. package/dist/{server → http}/elysia/index.mjs +50 -32
  20. package/dist/{server → http}/express/index.d.mts +5 -5
  21. package/dist/{server → http}/express/index.d.ts +5 -5
  22. package/dist/{server → http}/express/index.js +71 -55
  23. package/dist/{server → http}/express/index.mjs +42 -26
  24. package/dist/{server → http}/fastify/index.d.mts +5 -5
  25. package/dist/{server → http}/fastify/index.d.ts +5 -5
  26. package/dist/{server → http}/fastify/index.js +72 -72
  27. package/dist/{server → http}/fastify/index.mjs +47 -47
  28. package/dist/{server → http}/h3/index.d.mts +5 -5
  29. package/dist/{server → http}/h3/index.d.ts +5 -5
  30. package/dist/http/h3/index.js +160 -0
  31. package/dist/{server → http}/h3/index.mjs +68 -62
  32. package/dist/{server → http}/hono/index.d.mts +5 -5
  33. package/dist/{server → http}/hono/index.d.ts +5 -5
  34. package/dist/{server → http}/hono/index.js +69 -54
  35. package/dist/{server → http}/hono/index.mjs +41 -26
  36. package/dist/{server → http}/hyper-express/index.d.mts +5 -5
  37. package/dist/{server → http}/hyper-express/index.d.ts +5 -5
  38. package/dist/{server → http}/hyper-express/index.js +69 -56
  39. package/dist/{server → http}/hyper-express/index.mjs +41 -28
  40. package/dist/{server → http}/koa/index.d.mts +5 -5
  41. package/dist/{server → http}/koa/index.d.ts +5 -5
  42. package/dist/{server → http}/koa/index.js +71 -55
  43. package/dist/{server → http}/koa/index.mjs +42 -26
  44. package/dist/index.d.mts +51 -40
  45. package/dist/index.d.ts +51 -40
  46. package/dist/index.js +59 -81
  47. package/dist/index.mjs +39 -61
  48. package/dist/{meta-KtfiBIde.d.ts → meta-BXKLFTgG.d.mts} +2 -3
  49. package/dist/{meta-KtfiBIde.d.mts → meta-BXKLFTgG.d.ts} +2 -3
  50. package/dist/rpc/bullmq/index.d.mts +6 -6
  51. package/dist/rpc/bullmq/index.d.ts +6 -6
  52. package/dist/rpc/bullmq/index.js +24 -24
  53. package/dist/rpc/bullmq/index.mjs +14 -14
  54. package/dist/rpc/kafka/index.d.mts +3 -3
  55. package/dist/rpc/kafka/index.d.ts +3 -3
  56. package/dist/rpc/kafka/index.js +25 -21
  57. package/dist/rpc/kafka/index.mjs +15 -11
  58. package/dist/rpc/nats/index.d.mts +3 -3
  59. package/dist/rpc/nats/index.d.ts +3 -3
  60. package/dist/rpc/nats/index.js +22 -21
  61. package/dist/rpc/nats/index.mjs +13 -12
  62. package/dist/rpc/rabbitmq/index.d.mts +3 -3
  63. package/dist/rpc/rabbitmq/index.d.ts +3 -3
  64. package/dist/rpc/rabbitmq/index.js +23 -22
  65. package/dist/rpc/rabbitmq/index.mjs +12 -11
  66. package/dist/rpc/redis/index.d.mts +3 -3
  67. package/dist/rpc/redis/index.d.ts +3 -3
  68. package/dist/rpc/redis/index.js +24 -20
  69. package/dist/rpc/redis/index.mjs +15 -11
  70. package/dist/test.d.mts +3 -3
  71. package/dist/test.d.ts +3 -3
  72. package/dist/test.js +6 -6
  73. package/dist/test.mjs +2 -2
  74. package/dist/{types-JVT0mgLD.d.ts → types-BtbL49Zs.d.mts} +2 -1
  75. package/dist/{types-DIw7B6Up.d.ts → types-VFzEM7LL.d.ts} +5 -5
  76. package/dist/{types-BvD3B5Ny.d.mts → types-h40T3cRG.d.mts} +5 -5
  77. package/dist/{types-t9D1fU6G.d.mts → types-m3IEDKjP.d.ts} +2 -1
  78. package/package.json +23 -23
  79. package/dist/chunk-DVTBLV6I.js +0 -539
  80. package/dist/server/h3/index.js +0 -154
@@ -3,28 +3,32 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkDVTBLV6Ijs = require('../../chunk-DVTBLV6I.js');
6
+ var _chunkSW5IKE5Hjs = require('../../chunk-SW5IKE5H.js');
7
7
 
8
8
 
9
- var _chunkTVT62GIXjs = require('../../chunk-TVT62GIX.js');
9
+ var _chunkJ5CFUN4Vjs = require('../../chunk-J5CFUN4V.js');
10
10
 
11
11
  // src/rpc/kafka/bind.ts
12
12
  var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
13
13
  var debug = _debug2.default.call(void 0, "phecda-server/kafka");
14
14
  async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
15
- const { globalGuards, globalInterceptors, globalFilter, globalPipe } = opts;
15
+ const { globalGuards, globalFilter, globalPipe, globalAddons = [], defaultQueue } = opts;
16
16
  const existQueue = /* @__PURE__ */ new Set();
17
- const metaMap = _chunkDVTBLV6Ijs.createControllerMetaMap.call(void 0, meta, (meta2) => {
17
+ const metaMap = _chunkSW5IKE5Hjs.createControllerMetaMap.call(void 0, meta, (meta2) => {
18
18
  const { controller, rpc, func, tag } = meta2.data;
19
19
  if (controller === "rpc" && _optionalChain([rpc, 'optionalAccess', _ => _.queue]) !== void 0) {
20
20
  debug(`register method "${func}" in module "${tag}"`);
21
21
  return true;
22
22
  }
23
23
  });
24
- _chunkDVTBLV6Ijs.detectAopDep.call(void 0, meta, {
24
+ _chunkSW5IKE5Hjs.detectAopDep.call(void 0, meta, {
25
25
  guards: globalGuards,
26
- interceptors: globalInterceptors
26
+ addons: globalAddons
27
27
  }, "rpc");
28
+ _chunkSW5IKE5Hjs.Context.applyAddons(globalAddons, {
29
+ consumer,
30
+ producer
31
+ }, "kafka");
28
32
  async function subscribeQueues() {
29
33
  existQueue.clear();
30
34
  for (const [tag, record] of metaMap) {
@@ -32,7 +36,7 @@ async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
32
36
  const meta2 = metaMap.get(tag)[func];
33
37
  const { data: { rpc } } = meta2;
34
38
  if (rpc) {
35
- const queue = rpc.queue || tag;
39
+ const queue = rpc.queue || defaultQueue || tag;
36
40
  if (existQueue.has(queue)) continue;
37
41
  existQueue.add(queue);
38
42
  await consumer.subscribe({
@@ -43,10 +47,10 @@ async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
43
47
  }
44
48
  }
45
49
  }
46
- _chunkTVT62GIXjs.__name.call(void 0, subscribeQueues, "subscribeQueues");
50
+ _chunkJ5CFUN4Vjs.__name.call(void 0, subscribeQueues, "subscribeQueues");
47
51
  await subscribeQueues();
48
52
  await consumer.run({
49
- eachMessage: /* @__PURE__ */ _chunkTVT62GIXjs.__name.call(void 0, async ({ message, partition, topic, heartbeat, pause }) => {
53
+ eachMessage: /* @__PURE__ */ _chunkJ5CFUN4Vjs.__name.call(void 0, async ({ message, partition, topic, heartbeat, pause }) => {
50
54
  if (!existQueue.has(topic)) return;
51
55
  const data = JSON.parse(message.value.toString());
52
56
  const { tag, func, id, queue: clientQueue, _ps, args } = data;
@@ -55,7 +59,12 @@ async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
55
59
  const meta2 = metaMap.get(tag)[func];
56
60
  const { data: { rpc } } = meta2;
57
61
  const isEvent = rpc.isEvent;
58
- const context = new (0, _chunkDVTBLV6Ijs.Context)({
62
+ const aop = _chunkSW5IKE5Hjs.Context.getAop(meta2, {
63
+ globalFilter,
64
+ globalGuards,
65
+ globalPipe
66
+ });
67
+ const context = new (0, _chunkSW5IKE5Hjs.Context)({
59
68
  type: "kafka",
60
69
  moduleMap,
61
70
  meta: meta2,
@@ -70,12 +79,7 @@ async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
70
79
  isEvent,
71
80
  queue: topic
72
81
  });
73
- await context.run({
74
- globalGuards,
75
- globalInterceptors,
76
- globalFilter,
77
- globalPipe
78
- }, (returnData) => {
82
+ await context.run(aop, (returnData) => {
79
83
  if (!isEvent) {
80
84
  producer.send({
81
85
  topic: clientQueue,
@@ -108,7 +112,7 @@ async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
108
112
  }, "eachMessage")
109
113
  });
110
114
  }
111
- _chunkTVT62GIXjs.__name.call(void 0, bind, "bind");
115
+ _chunkJ5CFUN4Vjs.__name.call(void 0, bind, "bind");
112
116
 
113
117
  // src/rpc/kafka/client.ts
114
118
  var _events = require('events');
@@ -117,7 +121,7 @@ async function createClient({ producer, consumer }, controllers, opts) {
117
121
  let eventCount = 1;
118
122
  const ret = {};
119
123
  const emitter = new (0, _events.EventEmitter)();
120
- const clientQueue = _chunkDVTBLV6Ijs.genClientQueue.call(void 0, _optionalChain([opts, 'optionalAccess', _2 => _2.key]));
124
+ const clientQueue = _chunkSW5IKE5Hjs.genClientQueue.call(void 0, _optionalChain([opts, 'optionalAccess', _2 => _2.key]));
121
125
  await consumer.subscribe({
122
126
  topic: clientQueue,
123
127
  fromBeginning: true
@@ -167,7 +171,7 @@ async function createClient({ producer, consumer }, controllers, opts) {
167
171
  if (error) reject(data);
168
172
  else resolve(data);
169
173
  }
170
- _chunkTVT62GIXjs.__name.call(void 0, listener, "listener");
174
+ _chunkJ5CFUN4Vjs.__name.call(void 0, listener, "listener");
171
175
  eventCount++;
172
176
  emitter.once(id, listener);
173
177
  });
@@ -176,7 +180,7 @@ async function createClient({ producer, consumer }, controllers, opts) {
176
180
  });
177
181
  }
178
182
  await consumer.run({
179
- eachMessage: /* @__PURE__ */ _chunkTVT62GIXjs.__name.call(void 0, async ({ message, topic }) => {
183
+ eachMessage: /* @__PURE__ */ _chunkJ5CFUN4Vjs.__name.call(void 0, async ({ message, topic }) => {
180
184
  if (clientQueue === topic && message.value) {
181
185
  const { data, id, error } = JSON.parse(message.value.toString());
182
186
  emitter.emit(id, data, error);
@@ -185,7 +189,7 @@ async function createClient({ producer, consumer }, controllers, opts) {
185
189
  });
186
190
  return ret;
187
191
  }
188
- _chunkTVT62GIXjs.__name.call(void 0, createClient, "createClient");
192
+ _chunkJ5CFUN4Vjs.__name.call(void 0, createClient, "createClient");
189
193
 
190
194
 
191
195
 
@@ -3,16 +3,16 @@ import {
3
3
  createControllerMetaMap,
4
4
  detectAopDep,
5
5
  genClientQueue
6
- } from "../../chunk-2CFYUXPM.mjs";
6
+ } from "../../chunk-P75VKZJY.mjs";
7
7
  import {
8
8
  __name
9
- } from "../../chunk-G7TD2VB7.mjs";
9
+ } from "../../chunk-WHJ5FALK.mjs";
10
10
 
11
11
  // src/rpc/kafka/bind.ts
12
12
  import Debug from "debug";
13
13
  var debug = Debug("phecda-server/kafka");
14
14
  async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
15
- const { globalGuards, globalInterceptors, globalFilter, globalPipe } = opts;
15
+ const { globalGuards, globalFilter, globalPipe, globalAddons = [], defaultQueue } = opts;
16
16
  const existQueue = /* @__PURE__ */ new Set();
17
17
  const metaMap = createControllerMetaMap(meta, (meta2) => {
18
18
  const { controller, rpc, func, tag } = meta2.data;
@@ -23,8 +23,12 @@ async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
23
23
  });
24
24
  detectAopDep(meta, {
25
25
  guards: globalGuards,
26
- interceptors: globalInterceptors
26
+ addons: globalAddons
27
27
  }, "rpc");
28
+ Context.applyAddons(globalAddons, {
29
+ consumer,
30
+ producer
31
+ }, "kafka");
28
32
  async function subscribeQueues() {
29
33
  existQueue.clear();
30
34
  for (const [tag, record] of metaMap) {
@@ -32,7 +36,7 @@ async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
32
36
  const meta2 = metaMap.get(tag)[func];
33
37
  const { data: { rpc } } = meta2;
34
38
  if (rpc) {
35
- const queue = rpc.queue || tag;
39
+ const queue = rpc.queue || defaultQueue || tag;
36
40
  if (existQueue.has(queue)) continue;
37
41
  existQueue.add(queue);
38
42
  await consumer.subscribe({
@@ -55,6 +59,11 @@ async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
55
59
  const meta2 = metaMap.get(tag)[func];
56
60
  const { data: { rpc } } = meta2;
57
61
  const isEvent = rpc.isEvent;
62
+ const aop = Context.getAop(meta2, {
63
+ globalFilter,
64
+ globalGuards,
65
+ globalPipe
66
+ });
58
67
  const context = new Context({
59
68
  type: "kafka",
60
69
  moduleMap,
@@ -70,12 +79,7 @@ async function bind({ consumer, producer }, { moduleMap, meta }, opts = {}) {
70
79
  isEvent,
71
80
  queue: topic
72
81
  });
73
- await context.run({
74
- globalGuards,
75
- globalInterceptors,
76
- globalFilter,
77
- globalPipe
78
- }, (returnData) => {
82
+ await context.run(aop, (returnData) => {
79
83
  if (!isEvent) {
80
84
  producer.send({
81
85
  topic: clientQueue,
@@ -1,7 +1,7 @@
1
1
  import { NatsConnection } from 'nats';
2
- import { F as Factory } from '../../core-P1CsH6jz.mjs';
3
- import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-t9D1fU6G.mjs';
4
- import { T as ToClientMap } from '../../meta-KtfiBIde.mjs';
2
+ import { F as Factory } from '../../core-BIcUwV18.mjs';
3
+ import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-BtbL49Zs.mjs';
4
+ import { T as ToClientMap } from '../../meta-BXKLFTgG.mjs';
5
5
  import 'phecda-core';
6
6
 
7
7
  interface NatsCtx extends RpcContext {
@@ -1,7 +1,7 @@
1
1
  import { NatsConnection } from 'nats';
2
- import { F as Factory } from '../../core-BlN0Spy9.js';
3
- import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-JVT0mgLD.js';
4
- import { T as ToClientMap } from '../../meta-KtfiBIde.js';
2
+ import { F as Factory } from '../../core-CYwEPfN4.js';
3
+ import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-m3IEDKjP.js';
4
+ import { T as ToClientMap } from '../../meta-BXKLFTgG.js';
5
5
  import 'phecda-core';
6
6
 
7
7
  interface NatsCtx extends RpcContext {
@@ -3,31 +3,32 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkDVTBLV6Ijs = require('../../chunk-DVTBLV6I.js');
6
+ var _chunkSW5IKE5Hjs = require('../../chunk-SW5IKE5H.js');
7
7
 
8
8
 
9
- var _chunkTVT62GIXjs = require('../../chunk-TVT62GIX.js');
9
+ var _chunkJ5CFUN4Vjs = require('../../chunk-J5CFUN4V.js');
10
10
 
11
11
  // src/rpc/nats/bind.ts
12
12
  var _nats = require('nats');
13
13
  var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
14
14
  var debug = _debug2.default.call(void 0, "phecda-server/nats");
15
15
  async function bind(nc, { moduleMap, meta }, opts = {}) {
16
- const { globalGuards, globalInterceptors, globalFilter, globalPipe } = opts;
16
+ const { globalGuards, globalFilter, globalPipe, globalAddons = [], defaultQueue } = opts;
17
17
  const sc = _nats.StringCodec.call(void 0, );
18
18
  const subscriptionMap = {};
19
19
  const existQueue = /* @__PURE__ */ new Set();
20
- const metaMap = _chunkDVTBLV6Ijs.createControllerMetaMap.call(void 0, meta, (meta2) => {
20
+ const metaMap = _chunkSW5IKE5Hjs.createControllerMetaMap.call(void 0, meta, (meta2) => {
21
21
  const { controller, rpc, func, tag } = meta2.data;
22
22
  if (controller === "rpc" && _optionalChain([rpc, 'optionalAccess', _2 => _2.queue]) !== void 0) {
23
23
  debug(`register method "${func}" in module "${tag}"`);
24
24
  return true;
25
25
  }
26
26
  });
27
- _chunkDVTBLV6Ijs.detectAopDep.call(void 0, meta, {
28
- guards: globalGuards,
29
- interceptors: globalInterceptors
27
+ _chunkSW5IKE5Hjs.detectAopDep.call(void 0, meta, {
28
+ addons: globalAddons,
29
+ guards: globalGuards
30
30
  }, "rpc");
31
+ _chunkSW5IKE5Hjs.Context.applyAddons(globalAddons, nc, "nats");
31
32
  async function subscribeQueues() {
32
33
  existQueue.clear();
33
34
  for (const [tag, record] of metaMap) {
@@ -35,7 +36,7 @@ async function bind(nc, { moduleMap, meta }, opts = {}) {
35
36
  const meta2 = metaMap.get(tag)[func];
36
37
  const { data: { rpc } } = meta2;
37
38
  if (rpc) {
38
- const queue = rpc.queue || tag;
39
+ const queue = rpc.queue || defaultQueue || tag;
39
40
  if (existQueue.has(queue)) continue;
40
41
  existQueue.add(queue);
41
42
  subscriptionMap[queue] = nc.subscribe(queue, {
@@ -46,7 +47,7 @@ async function bind(nc, { moduleMap, meta }, opts = {}) {
46
47
  }
47
48
  }
48
49
  }
49
- _chunkTVT62GIXjs.__name.call(void 0, subscribeQueues, "subscribeQueues");
50
+ _chunkJ5CFUN4Vjs.__name.call(void 0, subscribeQueues, "subscribeQueues");
50
51
  async function handleRequest(_, msg) {
51
52
  const data = JSON.parse(sc.decode(msg.data));
52
53
  const { tag, func, id, _ps, args } = data;
@@ -55,7 +56,12 @@ async function bind(nc, { moduleMap, meta }, opts = {}) {
55
56
  const meta2 = metaMap.get(tag)[func];
56
57
  const { data: { rpc: { isEvent } = {} } } = meta2;
57
58
  if (isEvent) msg.respond("{}");
58
- const context = new (0, _chunkDVTBLV6Ijs.Context)({
59
+ const aop = _chunkSW5IKE5Hjs.Context.getAop(meta2, {
60
+ globalFilter,
61
+ globalGuards,
62
+ globalPipe
63
+ });
64
+ const context = new (0, _chunkSW5IKE5Hjs.Context)({
59
65
  type: "nats",
60
66
  moduleMap,
61
67
  meta: meta2,
@@ -68,12 +74,7 @@ async function bind(nc, { moduleMap, meta }, opts = {}) {
68
74
  // @ts-expect-error nats ts problem
69
75
  queue: msg._msg.subject.toString()
70
76
  });
71
- await context.run({
72
- globalGuards,
73
- globalInterceptors,
74
- globalFilter,
75
- globalPipe
76
- }, (returnData) => {
77
+ await context.run(aop, (returnData) => {
77
78
  if (!isEvent) msg.respond(sc.encode(JSON.stringify({
78
79
  data: returnData,
79
80
  id
@@ -86,14 +87,14 @@ async function bind(nc, { moduleMap, meta }, opts = {}) {
86
87
  })));
87
88
  });
88
89
  }
89
- _chunkTVT62GIXjs.__name.call(void 0, handleRequest, "handleRequest");
90
+ _chunkJ5CFUN4Vjs.__name.call(void 0, handleRequest, "handleRequest");
90
91
  subscribeQueues();
91
- _chunkDVTBLV6Ijs.HMR.call(void 0, async () => {
92
+ _chunkSW5IKE5Hjs.HMR.call(void 0, async () => {
92
93
  for (const i in subscriptionMap) subscriptionMap[i].unsubscribe();
93
94
  await subscribeQueues();
94
95
  });
95
96
  }
96
- _chunkTVT62GIXjs.__name.call(void 0, bind, "bind");
97
+ _chunkJ5CFUN4Vjs.__name.call(void 0, bind, "bind");
97
98
 
98
99
  // src/rpc/nats/client.ts
99
100
 
@@ -143,7 +144,7 @@ async function createClient(nc, controllers, opts) {
143
144
  if (error) reject(data);
144
145
  else resolve(data);
145
146
  }
146
- _chunkTVT62GIXjs.__name.call(void 0, handler, "handler");
147
+ _chunkJ5CFUN4Vjs.__name.call(void 0, handler, "handler");
147
148
  eventCount++;
148
149
  });
149
150
  };
@@ -152,7 +153,7 @@ async function createClient(nc, controllers, opts) {
152
153
  }
153
154
  return ret;
154
155
  }
155
- _chunkTVT62GIXjs.__name.call(void 0, createClient, "createClient");
156
+ _chunkJ5CFUN4Vjs.__name.call(void 0, createClient, "createClient");
156
157
 
157
158
 
158
159
 
@@ -3,17 +3,17 @@ import {
3
3
  HMR,
4
4
  createControllerMetaMap,
5
5
  detectAopDep
6
- } from "../../chunk-2CFYUXPM.mjs";
6
+ } from "../../chunk-P75VKZJY.mjs";
7
7
  import {
8
8
  __name
9
- } from "../../chunk-G7TD2VB7.mjs";
9
+ } from "../../chunk-WHJ5FALK.mjs";
10
10
 
11
11
  // src/rpc/nats/bind.ts
12
12
  import { StringCodec } from "nats";
13
13
  import Debug from "debug";
14
14
  var debug = Debug("phecda-server/nats");
15
15
  async function bind(nc, { moduleMap, meta }, opts = {}) {
16
- const { globalGuards, globalInterceptors, globalFilter, globalPipe } = opts;
16
+ const { globalGuards, globalFilter, globalPipe, globalAddons = [], defaultQueue } = opts;
17
17
  const sc = StringCodec();
18
18
  const subscriptionMap = {};
19
19
  const existQueue = /* @__PURE__ */ new Set();
@@ -25,9 +25,10 @@ async function bind(nc, { moduleMap, meta }, opts = {}) {
25
25
  }
26
26
  });
27
27
  detectAopDep(meta, {
28
- guards: globalGuards,
29
- interceptors: globalInterceptors
28
+ addons: globalAddons,
29
+ guards: globalGuards
30
30
  }, "rpc");
31
+ Context.applyAddons(globalAddons, nc, "nats");
31
32
  async function subscribeQueues() {
32
33
  existQueue.clear();
33
34
  for (const [tag, record] of metaMap) {
@@ -35,7 +36,7 @@ async function bind(nc, { moduleMap, meta }, opts = {}) {
35
36
  const meta2 = metaMap.get(tag)[func];
36
37
  const { data: { rpc } } = meta2;
37
38
  if (rpc) {
38
- const queue = rpc.queue || tag;
39
+ const queue = rpc.queue || defaultQueue || tag;
39
40
  if (existQueue.has(queue)) continue;
40
41
  existQueue.add(queue);
41
42
  subscriptionMap[queue] = nc.subscribe(queue, {
@@ -55,6 +56,11 @@ async function bind(nc, { moduleMap, meta }, opts = {}) {
55
56
  const meta2 = metaMap.get(tag)[func];
56
57
  const { data: { rpc: { isEvent } = {} } } = meta2;
57
58
  if (isEvent) msg.respond("{}");
59
+ const aop = Context.getAop(meta2, {
60
+ globalFilter,
61
+ globalGuards,
62
+ globalPipe
63
+ });
58
64
  const context = new Context({
59
65
  type: "nats",
60
66
  moduleMap,
@@ -68,12 +74,7 @@ async function bind(nc, { moduleMap, meta }, opts = {}) {
68
74
  // @ts-expect-error nats ts problem
69
75
  queue: msg._msg.subject.toString()
70
76
  });
71
- await context.run({
72
- globalGuards,
73
- globalInterceptors,
74
- globalFilter,
75
- globalPipe
76
- }, (returnData) => {
77
+ await context.run(aop, (returnData) => {
77
78
  if (!isEvent) msg.respond(sc.encode(JSON.stringify({
78
79
  data: returnData,
79
80
  id
@@ -1,7 +1,7 @@
1
1
  import amqplib from 'amqplib';
2
- import { F as Factory } from '../../core-P1CsH6jz.mjs';
3
- import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-t9D1fU6G.mjs';
4
- import { T as ToClientMap } from '../../meta-KtfiBIde.mjs';
2
+ import { F as Factory } from '../../core-BIcUwV18.mjs';
3
+ import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-BtbL49Zs.mjs';
4
+ import { T as ToClientMap } from '../../meta-BXKLFTgG.mjs';
5
5
  import 'phecda-core';
6
6
 
7
7
  interface RabbitmqCtx extends RpcContext {
@@ -1,7 +1,7 @@
1
1
  import amqplib from 'amqplib';
2
- import { F as Factory } from '../../core-BlN0Spy9.js';
3
- import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-JVT0mgLD.js';
4
- import { T as ToClientMap } from '../../meta-KtfiBIde.js';
2
+ import { F as Factory } from '../../core-CYwEPfN4.js';
3
+ import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-m3IEDKjP.js';
4
+ import { T as ToClientMap } from '../../meta-BXKLFTgG.js';
5
5
  import 'phecda-core';
6
6
 
7
7
  interface RabbitmqCtx extends RpcContext {
@@ -4,28 +4,29 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkDVTBLV6Ijs = require('../../chunk-DVTBLV6I.js');
7
+ var _chunkSW5IKE5Hjs = require('../../chunk-SW5IKE5H.js');
8
8
 
9
9
 
10
- var _chunkTVT62GIXjs = require('../../chunk-TVT62GIX.js');
10
+ var _chunkJ5CFUN4Vjs = require('../../chunk-J5CFUN4V.js');
11
11
 
12
12
  // src/rpc/rabbitmq/bind.ts
13
13
  var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
14
14
  var debug = _debug2.default.call(void 0, "phecda-server/rabbitmq");
15
15
  async function bind(ch, { moduleMap, meta }, opts = {}) {
16
- const { globalGuards, globalInterceptors, globalFilter, globalPipe } = opts;
17
- const metaMap = _chunkDVTBLV6Ijs.createControllerMetaMap.call(void 0, meta, (meta2) => {
16
+ const { globalGuards, globalFilter, globalPipe, globalAddons = [], defaultQueue } = opts;
17
+ const metaMap = _chunkSW5IKE5Hjs.createControllerMetaMap.call(void 0, meta, (meta2) => {
18
18
  const { controller, rpc, func, tag } = meta2.data;
19
19
  if (controller === "rpc" && _optionalChain([rpc, 'optionalAccess', _ => _.queue]) !== void 0) {
20
20
  debug(`register method "${func}" in module "${tag}"`);
21
21
  return true;
22
22
  }
23
23
  });
24
- _chunkDVTBLV6Ijs.detectAopDep.call(void 0, meta, {
24
+ _chunkSW5IKE5Hjs.detectAopDep.call(void 0, meta, {
25
25
  guards: globalGuards,
26
- interceptors: globalInterceptors
26
+ addons: globalAddons
27
27
  }, "rpc");
28
28
  const existQueue = /* @__PURE__ */ new Set();
29
+ _chunkSW5IKE5Hjs.Context.applyAddons(globalAddons, ch, "rabbitmq");
29
30
  async function subscribeQueues() {
30
31
  existQueue.clear();
31
32
  for (const [tag, record] of metaMap) {
@@ -33,7 +34,7 @@ async function bind(ch, { moduleMap, meta }, opts = {}) {
33
34
  const meta2 = metaMap.get(tag)[func];
34
35
  const { data: { rpc } } = meta2;
35
36
  if (rpc) {
36
- const queue = rpc.queue || tag;
37
+ const queue = rpc.queue || defaultQueue || tag;
37
38
  if (existQueue.has(queue)) continue;
38
39
  existQueue.add(queue);
39
40
  await ch.assertQueue(queue);
@@ -44,12 +45,12 @@ async function bind(ch, { moduleMap, meta }, opts = {}) {
44
45
  }
45
46
  }
46
47
  }
47
- _chunkTVT62GIXjs.__name.call(void 0, subscribeQueues, "subscribeQueues");
48
+ _chunkJ5CFUN4Vjs.__name.call(void 0, subscribeQueues, "subscribeQueues");
48
49
  async function handleRequest(msg) {
49
50
  function send(queue, data) {
50
51
  ch.sendToQueue(queue, Buffer.from(JSON.stringify(data)));
51
52
  }
52
- _chunkTVT62GIXjs.__name.call(void 0, send, "send");
53
+ _chunkJ5CFUN4Vjs.__name.call(void 0, send, "send");
53
54
  if (msg) {
54
55
  const data = JSON.parse(msg.content.toString());
55
56
  const { tag, func, id, queue: clientQueue, _ps, args } = data;
@@ -57,7 +58,12 @@ async function bind(ch, { moduleMap, meta }, opts = {}) {
57
58
  debug(`invoke method "${func}" in module "${tag}"`);
58
59
  const meta2 = metaMap.get(tag)[func];
59
60
  const { data: { rpc: { isEvent } = {} } } = meta2;
60
- const context = new (0, _chunkDVTBLV6Ijs.Context)({
61
+ const aop = _chunkSW5IKE5Hjs.Context.getAop(meta2, {
62
+ globalFilter,
63
+ globalGuards,
64
+ globalPipe
65
+ });
66
+ const context = new (0, _chunkSW5IKE5Hjs.Context)({
61
67
  type: "rabbitmq",
62
68
  moduleMap,
63
69
  meta: meta2,
@@ -70,12 +76,7 @@ async function bind(ch, { moduleMap, meta }, opts = {}) {
70
76
  isEvent,
71
77
  queue: msg.fields.routingKey
72
78
  });
73
- await context.run({
74
- globalGuards,
75
- globalInterceptors,
76
- globalFilter,
77
- globalPipe
78
- }, (returnData) => {
79
+ await context.run(aop, (returnData) => {
79
80
  if (!isEvent) send(clientQueue, {
80
81
  data: returnData,
81
82
  id
@@ -89,14 +90,14 @@ async function bind(ch, { moduleMap, meta }, opts = {}) {
89
90
  });
90
91
  }
91
92
  }
92
- _chunkTVT62GIXjs.__name.call(void 0, handleRequest, "handleRequest");
93
+ _chunkJ5CFUN4Vjs.__name.call(void 0, handleRequest, "handleRequest");
93
94
  subscribeQueues();
94
- _chunkDVTBLV6Ijs.HMR.call(void 0, async () => {
95
+ _chunkSW5IKE5Hjs.HMR.call(void 0, async () => {
95
96
  for (const queue of existQueue) await ch.deleteQueue(queue);
96
97
  await subscribeQueues();
97
98
  });
98
99
  }
99
- _chunkTVT62GIXjs.__name.call(void 0, bind, "bind");
100
+ _chunkJ5CFUN4Vjs.__name.call(void 0, bind, "bind");
100
101
 
101
102
  // src/rpc/rabbitmq/client.ts
102
103
  var _events = require('events');
@@ -105,7 +106,7 @@ async function createClient(ch, controllers, opts) {
105
106
  let eventCount = 0;
106
107
  const ret = {};
107
108
  const emitter = new (0, _events.EventEmitter)();
108
- const clientQueue = _chunkDVTBLV6Ijs.genClientQueue.call(void 0, _optionalChain([opts, 'optionalAccess', _2 => _2.key]));
109
+ const clientQueue = _chunkSW5IKE5Hjs.genClientQueue.call(void 0, _optionalChain([opts, 'optionalAccess', _2 => _2.key]));
109
110
  await ch.assertQueue(clientQueue);
110
111
  ch.consume(clientQueue, (msg) => {
111
112
  if (!msg) return;
@@ -150,7 +151,7 @@ async function createClient(ch, controllers, opts) {
150
151
  if (error) reject(data);
151
152
  else resolve(data);
152
153
  }
153
- _chunkTVT62GIXjs.__name.call(void 0, listener, "listener");
154
+ _chunkJ5CFUN4Vjs.__name.call(void 0, listener, "listener");
154
155
  eventCount++;
155
156
  emitter.once(id, listener);
156
157
  });
@@ -160,7 +161,7 @@ async function createClient(ch, controllers, opts) {
160
161
  }
161
162
  return ret;
162
163
  }
163
- _chunkTVT62GIXjs.__name.call(void 0, createClient, "createClient");
164
+ _chunkJ5CFUN4Vjs.__name.call(void 0, createClient, "createClient");
164
165
 
165
166
 
166
167
 
@@ -4,16 +4,16 @@ import {
4
4
  createControllerMetaMap,
5
5
  detectAopDep,
6
6
  genClientQueue
7
- } from "../../chunk-2CFYUXPM.mjs";
7
+ } from "../../chunk-P75VKZJY.mjs";
8
8
  import {
9
9
  __name
10
- } from "../../chunk-G7TD2VB7.mjs";
10
+ } from "../../chunk-WHJ5FALK.mjs";
11
11
 
12
12
  // src/rpc/rabbitmq/bind.ts
13
13
  import Debug from "debug";
14
14
  var debug = Debug("phecda-server/rabbitmq");
15
15
  async function bind(ch, { moduleMap, meta }, opts = {}) {
16
- const { globalGuards, globalInterceptors, globalFilter, globalPipe } = opts;
16
+ const { globalGuards, globalFilter, globalPipe, globalAddons = [], defaultQueue } = opts;
17
17
  const metaMap = createControllerMetaMap(meta, (meta2) => {
18
18
  const { controller, rpc, func, tag } = meta2.data;
19
19
  if (controller === "rpc" && rpc?.queue !== void 0) {
@@ -23,9 +23,10 @@ async function bind(ch, { moduleMap, meta }, opts = {}) {
23
23
  });
24
24
  detectAopDep(meta, {
25
25
  guards: globalGuards,
26
- interceptors: globalInterceptors
26
+ addons: globalAddons
27
27
  }, "rpc");
28
28
  const existQueue = /* @__PURE__ */ new Set();
29
+ Context.applyAddons(globalAddons, ch, "rabbitmq");
29
30
  async function subscribeQueues() {
30
31
  existQueue.clear();
31
32
  for (const [tag, record] of metaMap) {
@@ -33,7 +34,7 @@ async function bind(ch, { moduleMap, meta }, opts = {}) {
33
34
  const meta2 = metaMap.get(tag)[func];
34
35
  const { data: { rpc } } = meta2;
35
36
  if (rpc) {
36
- const queue = rpc.queue || tag;
37
+ const queue = rpc.queue || defaultQueue || tag;
37
38
  if (existQueue.has(queue)) continue;
38
39
  existQueue.add(queue);
39
40
  await ch.assertQueue(queue);
@@ -57,6 +58,11 @@ async function bind(ch, { moduleMap, meta }, opts = {}) {
57
58
  debug(`invoke method "${func}" in module "${tag}"`);
58
59
  const meta2 = metaMap.get(tag)[func];
59
60
  const { data: { rpc: { isEvent } = {} } } = meta2;
61
+ const aop = Context.getAop(meta2, {
62
+ globalFilter,
63
+ globalGuards,
64
+ globalPipe
65
+ });
60
66
  const context = new Context({
61
67
  type: "rabbitmq",
62
68
  moduleMap,
@@ -70,12 +76,7 @@ async function bind(ch, { moduleMap, meta }, opts = {}) {
70
76
  isEvent,
71
77
  queue: msg.fields.routingKey
72
78
  });
73
- await context.run({
74
- globalGuards,
75
- globalInterceptors,
76
- globalFilter,
77
- globalPipe
78
- }, (returnData) => {
79
+ await context.run(aop, (returnData) => {
79
80
  if (!isEvent) send(clientQueue, {
80
81
  data: returnData,
81
82
  id
@@ -1,7 +1,7 @@
1
1
  import Redis from 'ioredis';
2
- import { F as Factory } from '../../core-P1CsH6jz.mjs';
3
- import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-t9D1fU6G.mjs';
4
- import { T as ToClientMap } from '../../meta-KtfiBIde.mjs';
2
+ import { F as Factory } from '../../core-BIcUwV18.mjs';
3
+ import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-BtbL49Zs.mjs';
4
+ import { T as ToClientMap } from '../../meta-BXKLFTgG.mjs';
5
5
  import 'phecda-core';
6
6
 
7
7
  interface RedisCtx extends RpcContext {
@@ -1,7 +1,7 @@
1
1
  import Redis from 'ioredis';
2
- import { F as Factory } from '../../core-BlN0Spy9.js';
3
- import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-JVT0mgLD.js';
4
- import { T as ToClientMap } from '../../meta-KtfiBIde.js';
2
+ import { F as Factory } from '../../core-CYwEPfN4.js';
3
+ import { R as RpcContext, a as RpcServerOptions, b as RpcClientOptions } from '../../types-m3IEDKjP.js';
4
+ import { T as ToClientMap } from '../../meta-BXKLFTgG.js';
5
5
  import 'phecda-core';
6
6
 
7
7
  interface RedisCtx extends RpcContext {