phecda-server 7.0.0-alpha.9 → 7.0.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 (154) hide show
  1. package/README.md +10 -10
  2. package/assets/schema.json +12 -9
  3. package/bin/cli.mjs +96 -37
  4. package/dist/chunk-5SUY5UVC.js +258 -0
  5. package/dist/chunk-5SUY5UVC.js.map +1 -0
  6. package/dist/{chunk-7ZGYJ5OW.mjs → chunk-6JAHCTOT.mjs} +7 -2
  7. package/dist/chunk-6JAHCTOT.mjs.map +1 -0
  8. package/dist/{chunk-V5EYXVJT.js → chunk-EDAWJVJ4.js} +42 -25
  9. package/dist/chunk-EDAWJVJ4.js.map +1 -0
  10. package/dist/{chunk-FX3LDQII.js → chunk-H7OCHDZT.js} +61 -70
  11. package/dist/chunk-H7OCHDZT.js.map +1 -0
  12. package/dist/chunk-KRUOHWFR.js +306 -0
  13. package/dist/chunk-KRUOHWFR.js.map +1 -0
  14. package/dist/{chunk-KJUD2BKE.js → chunk-KUGU3UGO.js} +23 -18
  15. package/dist/chunk-KUGU3UGO.js.map +1 -0
  16. package/dist/{chunk-CVPZWDXU.mjs → chunk-LBH4RXQQ.mjs} +11 -20
  17. package/dist/chunk-LBH4RXQQ.mjs.map +1 -0
  18. package/dist/{chunk-FXTJ3BJ6.mjs → chunk-MDPW6WGF.mjs} +10 -4
  19. package/dist/chunk-MDPW6WGF.mjs.map +1 -0
  20. package/dist/{chunk-5RBTN33A.js → chunk-RLFCI3RG.js} +11 -5
  21. package/dist/chunk-RLFCI3RG.js.map +1 -0
  22. package/dist/{chunk-ODVWOXVB.mjs → chunk-TTHYUNOT.mjs} +18 -1
  23. package/dist/chunk-TTHYUNOT.mjs.map +1 -0
  24. package/dist/chunk-VDOICQ2U.mjs +258 -0
  25. package/dist/chunk-VDOICQ2U.mjs.map +1 -0
  26. package/dist/chunk-WTJKTICN.mjs +306 -0
  27. package/dist/chunk-WTJKTICN.mjs.map +1 -0
  28. package/dist/{core-D_cz0tKa.d.ts → core-BOo3uGFX.d.ts} +2 -2
  29. package/dist/{core-BDkhrEyf.d.mts → core-CF45G79J.d.mts} +2 -2
  30. package/dist/core-DbqWh47p.d.mts +50 -0
  31. package/dist/core-Rq7BhPHE.d.ts +50 -0
  32. package/dist/helper.d.mts +3 -5
  33. package/dist/helper.d.ts +3 -5
  34. package/dist/helper.js +4 -5
  35. package/dist/helper.js.map +1 -0
  36. package/dist/helper.mjs +3 -4
  37. package/dist/helper.mjs.map +1 -0
  38. package/dist/http/elysia/index.d.mts +4 -4
  39. package/dist/http/elysia/index.d.ts +4 -4
  40. package/dist/http/elysia/index.js +42 -40
  41. package/dist/http/elysia/index.js.map +1 -0
  42. package/dist/http/elysia/index.mjs +5 -3
  43. package/dist/http/elysia/index.mjs.map +1 -0
  44. package/dist/http/express/index.d.mts +3 -3
  45. package/dist/http/express/index.d.ts +3 -3
  46. package/dist/http/express/index.js +39 -37
  47. package/dist/http/express/index.js.map +1 -0
  48. package/dist/http/express/index.mjs +4 -2
  49. package/dist/http/express/index.mjs.map +1 -0
  50. package/dist/http/fastify/index.d.mts +3 -3
  51. package/dist/http/fastify/index.d.ts +3 -3
  52. package/dist/http/fastify/index.js +40 -38
  53. package/dist/http/fastify/index.js.map +1 -0
  54. package/dist/http/fastify/index.mjs +5 -3
  55. package/dist/http/fastify/index.mjs.map +1 -0
  56. package/dist/http/h3/index.d.mts +3 -3
  57. package/dist/http/h3/index.d.ts +3 -3
  58. package/dist/http/h3/index.js +40 -38
  59. package/dist/http/h3/index.js.map +1 -0
  60. package/dist/http/h3/index.mjs +4 -2
  61. package/dist/http/h3/index.mjs.map +1 -0
  62. package/dist/http/hono/index.d.mts +3 -3
  63. package/dist/http/hono/index.d.ts +3 -3
  64. package/dist/http/hono/index.js +36 -34
  65. package/dist/http/hono/index.js.map +1 -0
  66. package/dist/http/hono/index.mjs +4 -2
  67. package/dist/http/hono/index.mjs.map +1 -0
  68. package/dist/http/hyper-express/index.d.mts +3 -3
  69. package/dist/http/hyper-express/index.d.ts +3 -3
  70. package/dist/http/hyper-express/index.js +37 -35
  71. package/dist/http/hyper-express/index.js.map +1 -0
  72. package/dist/http/hyper-express/index.mjs +4 -2
  73. package/dist/http/hyper-express/index.mjs.map +1 -0
  74. package/dist/http/koa/index.d.mts +3 -3
  75. package/dist/http/koa/index.d.ts +3 -3
  76. package/dist/http/koa/index.js +39 -37
  77. package/dist/http/koa/index.js.map +1 -0
  78. package/dist/http/koa/index.mjs +4 -2
  79. package/dist/http/koa/index.mjs.map +1 -0
  80. package/dist/index.d.mts +76 -12
  81. package/dist/index.d.ts +76 -12
  82. package/dist/index.js +105 -49
  83. package/dist/index.js.map +1 -0
  84. package/dist/index.mjs +68 -12
  85. package/dist/index.mjs.map +1 -0
  86. package/dist/{meta-BX5jhe4Z.d.mts → meta-BoS1E-Nz.d.mts} +6 -23
  87. package/dist/{meta-BX5jhe4Z.d.ts → meta-BoS1E-Nz.d.ts} +6 -23
  88. package/dist/rpc/bullmq/index.d.mts +4 -6
  89. package/dist/rpc/bullmq/index.d.ts +4 -6
  90. package/dist/rpc/bullmq/index.js +13 -80
  91. package/dist/rpc/bullmq/index.js.map +1 -0
  92. package/dist/rpc/bullmq/index.mjs +5 -72
  93. package/dist/rpc/bullmq/index.mjs.map +1 -0
  94. package/dist/rpc/electron/index.d.mts +13 -0
  95. package/dist/rpc/electron/index.d.ts +13 -0
  96. package/dist/rpc/electron/index.js +73 -0
  97. package/dist/rpc/electron/index.js.map +1 -0
  98. package/dist/rpc/electron/index.mjs +73 -0
  99. package/dist/rpc/electron/index.mjs.map +1 -0
  100. package/dist/rpc/kafka/index.d.mts +4 -9
  101. package/dist/rpc/kafka/index.d.ts +4 -9
  102. package/dist/rpc/kafka/index.js +12 -90
  103. package/dist/rpc/kafka/index.js.map +1 -0
  104. package/dist/rpc/kafka/index.mjs +5 -83
  105. package/dist/rpc/kafka/index.mjs.map +1 -0
  106. package/dist/rpc/nats/index.d.mts +4 -6
  107. package/dist/rpc/nats/index.d.ts +4 -6
  108. package/dist/rpc/nats/index.js +13 -72
  109. package/dist/rpc/nats/index.js.map +1 -0
  110. package/dist/rpc/nats/index.mjs +4 -63
  111. package/dist/rpc/nats/index.mjs.map +1 -0
  112. package/dist/rpc/rabbitmq/index.d.mts +4 -6
  113. package/dist/rpc/rabbitmq/index.d.ts +4 -6
  114. package/dist/rpc/rabbitmq/index.js +14 -79
  115. package/dist/rpc/rabbitmq/index.js.map +1 -0
  116. package/dist/rpc/rabbitmq/index.mjs +5 -70
  117. package/dist/rpc/rabbitmq/index.mjs.map +1 -0
  118. package/dist/rpc/redis/index.d.mts +4 -9
  119. package/dist/rpc/redis/index.d.ts +4 -9
  120. package/dist/rpc/redis/index.js +12 -78
  121. package/dist/rpc/redis/index.js.map +1 -0
  122. package/dist/rpc/redis/index.mjs +5 -71
  123. package/dist/rpc/redis/index.mjs.map +1 -0
  124. package/dist/rpc/web-ext/index.d.mts +2 -0
  125. package/dist/rpc/web-ext/index.d.ts +2 -0
  126. package/dist/rpc/web-ext/index.js +1 -0
  127. package/dist/rpc/web-ext/index.js.map +1 -0
  128. package/dist/rpc/web-ext/index.mjs +1 -0
  129. package/dist/rpc/web-ext/index.mjs.map +1 -0
  130. package/dist/rpc/ws/index.d.mts +14 -0
  131. package/dist/rpc/ws/index.d.ts +14 -0
  132. package/dist/rpc/ws/index.js +74 -0
  133. package/dist/rpc/ws/index.js.map +1 -0
  134. package/dist/rpc/ws/index.mjs +74 -0
  135. package/dist/rpc/ws/index.mjs.map +1 -0
  136. package/dist/test.d.mts +7 -3
  137. package/dist/test.d.ts +7 -3
  138. package/dist/test.js +7 -6
  139. package/dist/test.js.map +1 -0
  140. package/dist/test.mjs +3 -2
  141. package/dist/test.mjs.map +1 -0
  142. package/dist/types-CInz3bD0.d.ts +14 -0
  143. package/dist/types-E-rqlg3-.d.mts +14 -0
  144. package/dist/{types-DKVhyZk_.d.mts → types-SCJZFCYt.d.mts} +1 -1
  145. package/dist/{types-CMeuFoyd.d.ts → types-xruyYmyu.d.ts} +1 -1
  146. package/package.json +24 -8
  147. package/register/export.mjs +30 -0
  148. package/register/index.mjs +2 -3
  149. package/register/loader.mjs +83 -90
  150. package/register/utils.mjs +36 -6
  151. package/assets/ps.json +0 -24
  152. package/assets/tsconfig.json +0 -21
  153. package/dist/types-B-rUM9Fm.d.mts +0 -19
  154. package/dist/types-MxxtkZXw.d.ts +0 -19
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6;
2
2
 
3
3
 
4
4
 
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- var _chunkKJUD2BKEjs = require('./chunk-KJUD2BKE.js');
9
+ var _chunkKRUOHWFRjs = require('./chunk-KRUOHWFR.js');
10
10
 
11
11
 
12
12
 
@@ -31,10 +31,10 @@ var _chunkKJUD2BKEjs = require('./chunk-KJUD2BKE.js');
31
31
 
32
32
 
33
33
 
34
- var _chunkV5EYXVJTjs = require('./chunk-V5EYXVJT.js');
35
34
 
36
35
 
37
36
 
37
+ var _chunk5SUY5UVCjs = require('./chunk-5SUY5UVC.js');
38
38
 
39
39
 
40
40
 
@@ -57,10 +57,10 @@ var _chunkV5EYXVJTjs = require('./chunk-V5EYXVJT.js');
57
57
 
58
58
 
59
59
 
60
- var _chunkFX3LDQIIjs = require('./chunk-FX3LDQII.js');
61
60
 
62
61
 
63
62
 
63
+ var _chunkH7OCHDZTjs = require('./chunk-H7OCHDZT.js');
64
64
 
65
65
 
66
66
 
@@ -71,13 +71,16 @@ var _chunkFX3LDQIIjs = require('./chunk-FX3LDQII.js');
71
71
 
72
72
 
73
73
 
74
- var _chunk5RBTN33Ajs = require('./chunk-5RBTN33A.js');
74
+
75
+
76
+
77
+
78
+ var _chunkRLFCI3RGjs = require('./chunk-RLFCI3RG.js');
75
79
 
76
80
  // src/types.ts
77
- var ResponseSymbol = Symbol("response");
78
81
  var CustomResponse = class {
79
82
  static {
80
- _chunk5RBTN33Ajs.__name.call(void 0, this, "CustomResponse");
83
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "CustomResponse");
81
84
  }
82
85
 
83
86
  };
@@ -90,38 +93,38 @@ function _ts_decorate(decorators, target, key, desc) {
90
93
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
91
94
  return c > 3 && r && Object.defineProperty(target, key, r), r;
92
95
  }
93
- _chunk5RBTN33Ajs.__name.call(void 0, _ts_decorate, "_ts_decorate");
96
+ _chunkRLFCI3RGjs.__name.call(void 0, _ts_decorate, "_ts_decorate");
94
97
  function _ts_metadata(k, v) {
95
98
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
96
99
  }
97
- _chunk5RBTN33Ajs.__name.call(void 0, _ts_metadata, "_ts_metadata");
100
+ _chunkRLFCI3RGjs.__name.call(void 0, _ts_metadata, "_ts_metadata");
98
101
  var ServerBase = (_class = class extends _phecdacore.Base {constructor(...args2) { super(...args2); _class.prototype.__init.call(this); }
99
102
  static {
100
- _chunk5RBTN33Ajs.__name.call(void 0, this, "ServerBase");
103
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "ServerBase");
101
104
  }
102
- __init() {this.emitter = exports.emitter = _chunkKJUD2BKEjs.emitter}
105
+ __init() {this.emitter = exports.emitter = _chunkKRUOHWFRjs.emitter}
103
106
  log(msg, level = "log") {
104
- _chunk5RBTN33Ajs.log.call(void 0, msg, level, this.tag);
107
+ _chunkRLFCI3RGjs.log.call(void 0, msg, level, this.tag);
105
108
  }
106
109
  }, _class);
107
110
  var HttpBase = class extends ServerBase {
108
111
  static {
109
- _chunk5RBTN33Ajs.__name.call(void 0, this, "HttpBase");
112
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "HttpBase");
110
113
  }
111
114
 
112
115
  };
113
116
  _ts_decorate([
114
- _chunkV5EYXVJTjs.Ctx,
117
+ _chunk5SUY5UVCjs.Ctx,
115
118
  _ts_metadata("design:type", typeof Ctx === "undefined" ? Object : Ctx)
116
119
  ], HttpBase.prototype, "context", void 0);
117
120
  var RpcBase = class extends ServerBase {
118
121
  static {
119
- _chunk5RBTN33Ajs.__name.call(void 0, this, "RpcBase");
122
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "RpcBase");
120
123
  }
121
124
 
122
125
  };
123
126
  _ts_decorate([
124
- _chunkV5EYXVJTjs.Ctx,
127
+ _chunk5SUY5UVCjs.Ctx,
125
128
  _ts_metadata("design:type", typeof Ctx === "undefined" ? Object : Ctx)
126
129
  ], RpcBase.prototype, "context", void 0);
127
130
 
@@ -129,15 +132,15 @@ _ts_decorate([
129
132
 
130
133
  var PFilter = class extends ServerBase {
131
134
  static {
132
- _chunk5RBTN33Ajs.__name.call(void 0, this, "PFilter");
135
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "PFilter");
133
136
  }
134
137
 
135
138
  constructor(tag) {
136
139
  super();
137
140
  this.key = tag || _phecdacore.getTag.call(void 0, this);
138
- _chunkFX3LDQIIjs.addFilter.call(void 0, this.key, this.use.bind(this));
141
+ _chunkH7OCHDZTjs.addFilter.call(void 0, this.key, this.use.bind(this));
139
142
  this.onUnmount(() => {
140
- delete _chunkFX3LDQIIjs.Context.filterRecord[this.key];
143
+ delete _chunkH7OCHDZTjs.Context.filterRecord[this.key];
141
144
  });
142
145
  }
143
146
  };
@@ -146,16 +149,16 @@ var PFilter = class extends ServerBase {
146
149
 
147
150
  var PGuard = (_class2 = class extends ServerBase {
148
151
  static {
149
- _chunk5RBTN33Ajs.__name.call(void 0, this, "PGuard");
152
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "PGuard");
150
153
  }
151
154
 
152
155
  __init2() {this.priority = 0}
153
156
  constructor(tag) {
154
157
  super();_class2.prototype.__init2.call(this);;
155
158
  this.key = tag || _phecdacore.getTag.call(void 0, this);
156
- _chunkFX3LDQIIjs.addGuard.call(void 0, this.key, this.use.bind(this), this.priority);
159
+ _chunkH7OCHDZTjs.addGuard.call(void 0, this.key, this.use.bind(this), this.priority);
157
160
  this.onUnmount(() => {
158
- delete _chunkFX3LDQIIjs.Context.guardRecord[this.key];
161
+ delete _chunkH7OCHDZTjs.Context.guardRecord[this.key];
159
162
  });
160
163
  }
161
164
  }, _class2);
@@ -164,15 +167,15 @@ var PGuard = (_class2 = class extends ServerBase {
164
167
 
165
168
  var PPipe = class extends ServerBase {
166
169
  static {
167
- _chunk5RBTN33Ajs.__name.call(void 0, this, "PPipe");
170
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "PPipe");
168
171
  }
169
172
 
170
173
  constructor(tag) {
171
174
  super();
172
175
  this.key = tag || _phecdacore.getTag.call(void 0, this);
173
- _chunkFX3LDQIIjs.addPipe.call(void 0, this.key, this.use.bind(this));
176
+ _chunkH7OCHDZTjs.addPipe.call(void 0, this.key, this.use.bind(this));
174
177
  this.onUnmount(() => {
175
- delete _chunkFX3LDQIIjs.Context.pipeRecord[this.key];
178
+ delete _chunkH7OCHDZTjs.Context.pipeRecord[this.key];
176
179
  });
177
180
  }
178
181
  };
@@ -181,16 +184,16 @@ var PPipe = class extends ServerBase {
181
184
 
182
185
  var PAddon = (_class3 = class extends ServerBase {
183
186
  static {
184
- _chunk5RBTN33Ajs.__name.call(void 0, this, "PAddon");
187
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "PAddon");
185
188
  }
186
189
 
187
190
  __init3() {this.priority = 0}
188
191
  constructor(tag) {
189
192
  super();_class3.prototype.__init3.call(this);;
190
193
  this.key = tag || _phecdacore.getTag.call(void 0, this);
191
- _chunkFX3LDQIIjs.addAddon.call(void 0, this.key, this.use.bind(this), this.priority);
194
+ _chunkH7OCHDZTjs.addAddon.call(void 0, this.key, this.use.bind(this), this.priority);
192
195
  this.onUnmount(() => {
193
- delete _chunkFX3LDQIIjs.Context.addonRecord[this.key];
196
+ delete _chunkH7OCHDZTjs.Context.addonRecord[this.key];
194
197
  });
195
198
  }
196
199
  }, _class3);
@@ -199,7 +202,7 @@ var PAddon = (_class3 = class extends ServerBase {
199
202
 
200
203
  var PExtension = class extends ServerBase {
201
204
  static {
202
- _chunk5RBTN33Ajs.__name.call(void 0, this, "PExtension");
205
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "PExtension");
203
206
  }
204
207
 
205
208
 
@@ -208,27 +211,27 @@ var PExtension = class extends ServerBase {
208
211
  super();
209
212
  const key = this.key = tag || _phecdacore.getTag.call(void 0, this);
210
213
  if (this.pipe) {
211
- _chunkFX3LDQIIjs.addPipe.call(void 0, key, this.pipe.bind(this));
214
+ _chunkH7OCHDZTjs.addPipe.call(void 0, key, this.pipe.bind(this));
212
215
  this.onUnmount(() => {
213
- delete _chunkFX3LDQIIjs.Context.pipeRecord[key];
216
+ delete _chunkH7OCHDZTjs.Context.pipeRecord[key];
214
217
  });
215
218
  }
216
219
  if (this.addon) {
217
- _chunkFX3LDQIIjs.addAddon.call(void 0, key, this.addon.bind(this), this.addonPriority);
220
+ _chunkH7OCHDZTjs.addAddon.call(void 0, key, this.addon.bind(this), this.addonPriority);
218
221
  this.onUnmount(() => {
219
- delete _chunkFX3LDQIIjs.Context.addonRecord[key];
222
+ delete _chunkH7OCHDZTjs.Context.addonRecord[key];
220
223
  });
221
224
  }
222
225
  if (this.guard) {
223
- _chunkFX3LDQIIjs.addGuard.call(void 0, key, this.guard.bind(this), this.guardPriority);
226
+ _chunkH7OCHDZTjs.addGuard.call(void 0, key, this.guard.bind(this), this.guardPriority);
224
227
  this.onUnmount(() => {
225
- delete _chunkFX3LDQIIjs.Context.guardRecord[key];
228
+ delete _chunkH7OCHDZTjs.Context.guardRecord[key];
226
229
  });
227
230
  }
228
231
  if (this.filter) {
229
- _chunkFX3LDQIIjs.addFilter.call(void 0, key, this.filter.bind(this));
232
+ _chunkH7OCHDZTjs.addFilter.call(void 0, key, this.filter.bind(this));
230
233
  this.onUnmount(() => {
231
- delete _chunkFX3LDQIIjs.Context.filterRecord[key];
234
+ delete _chunkH7OCHDZTjs.Context.filterRecord[key];
232
235
  });
233
236
  }
234
237
  }
@@ -238,7 +241,7 @@ var PExtension = class extends ServerBase {
238
241
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
239
242
  var Generator = class {
240
243
  static {
241
- _chunk5RBTN33Ajs.__name.call(void 0, this, "Generator");
244
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "Generator");
242
245
  }
243
246
 
244
247
  constructor(path) {
@@ -248,14 +251,14 @@ var Generator = class {
248
251
  return this._path || `.ps/${this.name.toLowerCase()}.js`;
249
252
  }
250
253
  async output(meta) {
251
- await _fsextra2.default.outputFile(this.path, this.generateCode(meta.map((item) => item.data)));
254
+ await _fsextra2.default.outputFile(this.path, this.generateCode(meta));
252
255
  }
253
256
  };
254
257
 
255
258
  // src/generator/rpc.ts
256
259
  var RPCGenerator = (_class4 = class extends Generator {constructor(...args3) { super(...args3); _class4.prototype.__init4.call(this);_class4.prototype.__init5.call(this); }
257
260
  static {
258
- _chunk5RBTN33Ajs.__name.call(void 0, this, "RPCGenerator");
261
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "RPCGenerator");
259
262
  }
260
263
  __init4() {this.name = "RPC"}
261
264
  __init5() {this.classMap = {}}
@@ -281,9 +284,9 @@ var RPCGenerator = (_class4 = class extends Generator {constructor(...args3) { s
281
284
  `;
282
285
  }
283
286
  generateCode(meta) {
284
- for (const i of meta) {
285
- if (i.controller === "rpc") this.addMethod(i);
286
- }
287
+ meta.forEach(({ data }) => {
288
+ if (data.controller === "rpc") this.addMethod(data);
289
+ });
287
290
  return this.getContent();
288
291
  }
289
292
  }, _class4);
@@ -291,7 +294,7 @@ var RPCGenerator = (_class4 = class extends Generator {constructor(...args3) { s
291
294
  // src/generator/http.ts
292
295
  var HTTPGenerator = (_class5 = class extends Generator {constructor(...args4) { super(...args4); _class5.prototype.__init6.call(this);_class5.prototype.__init7.call(this); }
293
296
  static {
294
- _chunk5RBTN33Ajs.__name.call(void 0, this, "HTTPGenerator");
297
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "HTTPGenerator");
295
298
  }
296
299
  __init6() {this.name = "HTTP"}
297
300
  __init7() {this.classMap = {}}
@@ -308,7 +311,7 @@ var HTTPGenerator = (_class5 = class extends Generator {constructor(...args4) {
308
311
  addMethod(args) {
309
312
  const { http, name, func, params, tag } = args;
310
313
  if (!_optionalChain([http, 'optionalAccess', _2 => _2.type])) return;
311
- const url = _chunkFX3LDQIIjs.joinUrl.call(void 0, http.prefix, http.route).replace(/\/\:([^\/]*)/g, (_, js) => `/{{${js}}}`);
314
+ const url = _chunkH7OCHDZTjs.joinUrl.call(void 0, http.prefix, http.route).replace(/\/\:([^\/]*)/g, (_, js) => `/{{${js}}}`);
312
315
  if (!this.classMap[name]) this.classMap[name] = {};
313
316
  this.classMap[name][func] = `
314
317
  ${func}(...args){
@@ -322,13 +325,60 @@ return ret
322
325
  `;
323
326
  }
324
327
  generateCode(meta) {
325
- for (const i of meta) {
326
- if (i.controller === "http") this.addMethod(i);
327
- }
328
+ meta.forEach(({ data }) => {
329
+ if (data.controller === "http") this.addMethod(data);
330
+ });
328
331
  return this.getContent();
329
332
  }
330
333
  }, _class5);
331
334
 
335
+ // src/generator/openapi.ts
336
+
337
+ var OpenAPIGenerator = (_class6 = class extends Generator {constructor(...args5) { super(...args5); _class6.prototype.__init8.call(this);_class6.prototype.__init9.call(this); }
338
+ static {
339
+ _chunkRLFCI3RGjs.__name.call(void 0, this, "OpenAPIGenerator");
340
+ }
341
+ __init8() {this.name = "OpenAPI"}
342
+ __init9() {this.paths = {}}
343
+ getContent() {
344
+ return JSON.stringify({
345
+ openapi: "3.0.0",
346
+ info: {
347
+ title: "API Documentation",
348
+ version: "1.0.0",
349
+ description: "API documentation generated by phecda-server"
350
+ },
351
+ paths: this.paths
352
+ });
353
+ }
354
+ addMethod(args) {
355
+ const { http, tag, func } = args;
356
+ if (!_optionalChain([http, 'optionalAccess', _3 => _3.type])) return;
357
+ const path = _chunkH7OCHDZTjs.joinUrl.call(void 0, http.prefix, http.route);
358
+ if (!this.paths[path]) {
359
+ this.paths[path] = {};
360
+ }
361
+ const config = _phecdacore.getMergedMeta.call(void 0, _chunkKRUOHWFRjs.useS.call(void 0, ).getModel(tag), func)["openapi"];
362
+ this.paths[path][http.type] = {
363
+ summary: config.summary,
364
+ description: config.description,
365
+ tags: config.tags || [
366
+ tag
367
+ ],
368
+ deprecated: config.deprecated,
369
+ parameters: config.parameters,
370
+ requestBody: config.requestBody,
371
+ responses: config.responses
372
+ };
373
+ }
374
+ generateCode(meta) {
375
+ meta.forEach(({ data }) => {
376
+ if (data.controller === "http") this.addMethod(data);
377
+ });
378
+ return this.getContent();
379
+ }
380
+ }, _class6);
381
+
332
382
  // src/index.ts
333
383
 
334
384
 
@@ -408,4 +458,10 @@ return ret
408
458
 
409
459
 
410
460
 
411
- exports.Addon = _chunkV5EYXVJTjs.Addon; exports.Arg = _chunkV5EYXVJTjs.Arg; exports.BadGatewayException = _chunkFX3LDQIIjs.BadGatewayException; exports.BadRequestException = _chunkFX3LDQIIjs.BadRequestException; exports.BaseParam = _chunkV5EYXVJTjs.BaseParam; exports.Body = _chunkV5EYXVJTjs.Body; exports.ConflictException = _chunkFX3LDQIIjs.ConflictException; exports.Context = _chunkFX3LDQIIjs.Context; exports.Controller = _chunkV5EYXVJTjs.Controller; exports.Ctx = _chunkV5EYXVJTjs.Ctx; exports.CustomResponse = CustomResponse; exports.Define = _chunkV5EYXVJTjs.Define; exports.Delete = _chunkV5EYXVJTjs.Delete; exports.ERROR_SYMBOL = _chunk5RBTN33Ajs.ERROR_SYMBOL; exports.Exception = _chunkFX3LDQIIjs.Exception; exports.Factory = _chunkKJUD2BKEjs.Factory; exports.Filter = _chunkV5EYXVJTjs.Filter; exports.ForbiddenException = _chunkFX3LDQIIjs.ForbiddenException; exports.FrameworkException = _chunkFX3LDQIIjs.FrameworkException; exports.Generator = Generator; exports.Get = _chunkV5EYXVJTjs.Get; exports.Guard = _chunkV5EYXVJTjs.Guard; exports.HTTPGenerator = HTTPGenerator; exports.Head = _chunkV5EYXVJTjs.Head; exports.Header = _chunkV5EYXVJTjs.Header; exports.HttpBase = HttpBase; exports.IS_DEV = _chunk5RBTN33Ajs.IS_DEV; exports.IS_ONLY_GENERATE = _chunk5RBTN33Ajs.IS_ONLY_GENERATE; exports.IS_STRICT = _chunk5RBTN33Ajs.IS_STRICT; exports.InvalidInputException = _chunkFX3LDQIIjs.InvalidInputException; exports.LOG_LEVEL = _chunk5RBTN33Ajs.LOG_LEVEL; exports.Meta = _chunkKJUD2BKEjs.Meta; exports.Mixin = _chunk5RBTN33Ajs.Mixin; exports.NotFoundException = _chunkFX3LDQIIjs.NotFoundException; exports.PAddon = PAddon; exports.PExtension = PExtension; exports.PFilter = PFilter; exports.PGuard = PGuard; exports.PPipe = PPipe; exports.PS_EXIT_CODE = _chunk5RBTN33Ajs.PS_EXIT_CODE; exports.Param = _chunkV5EYXVJTjs.Param; exports.Patch = _chunkV5EYXVJTjs.Patch; exports.PayloadLargeException = _chunkFX3LDQIIjs.PayloadLargeException; exports.Pipe = _chunkV5EYXVJTjs.Pipe; exports.Post = _chunkV5EYXVJTjs.Post; exports.Put = _chunkV5EYXVJTjs.Put; exports.Query = _chunkV5EYXVJTjs.Query; exports.Queue = _chunkV5EYXVJTjs.Queue; exports.RPCGenerator = RPCGenerator; exports.Route = _chunkV5EYXVJTjs.Route; exports.Rpc = _chunkV5EYXVJTjs.Rpc; exports.RpcBase = RpcBase; exports.Search = _chunkV5EYXVJTjs.Search; exports.ServerBase = ServerBase; exports.ServerPhecda = _chunkKJUD2BKEjs.ServerPhecda; exports.ServiceUnavailableException = _chunkFX3LDQIIjs.ServiceUnavailableException; exports.TimeoutException = _chunkFX3LDQIIjs.TimeoutException; exports.TimerException = _chunkFX3LDQIIjs.TimerException; exports.UnauthorizedException = _chunkFX3LDQIIjs.UnauthorizedException; exports.UndefinedException = _chunkFX3LDQIIjs.UndefinedException; exports.UnsupportedMediaTypeException = _chunkFX3LDQIIjs.UnsupportedMediaTypeException; exports.ValidateException = _chunkFX3LDQIIjs.ValidateException; exports.WorkerException = _chunkFX3LDQIIjs.WorkerException; exports.addAddon = _chunkFX3LDQIIjs.addAddon; exports.addFilter = _chunkFX3LDQIIjs.addFilter; exports.addGuard = _chunkFX3LDQIIjs.addGuard; exports.addPipe = _chunkFX3LDQIIjs.addPipe; exports.defaultPipe = _chunkFX3LDQIIjs.defaultPipe; exports.defaultServerInject = _chunkKJUD2BKEjs.defaultServerInject; exports.emitter = _chunkKJUD2BKEjs.emitter; exports.getLogger = _chunk5RBTN33Ajs.getLogger; exports.log = _chunk5RBTN33Ajs.log; exports.phecdaNamespace = _chunkKJUD2BKEjs.phecdaNamespace; exports.runMiddleware = _chunk5RBTN33Ajs.runMiddleware; exports.setLogger = _chunk5RBTN33Ajs.setLogger; exports.useS = _chunkKJUD2BKEjs.useS;
461
+
462
+
463
+
464
+
465
+
466
+ exports.Addon = _chunk5SUY5UVCjs.Addon; exports.ApiDoc = _chunk5SUY5UVCjs.ApiDoc; exports.Arg = _chunk5SUY5UVCjs.Arg; exports.BadGatewayException = _chunkH7OCHDZTjs.BadGatewayException; exports.BadRequestException = _chunkH7OCHDZTjs.BadRequestException; exports.BaseParam = _chunk5SUY5UVCjs.BaseParam; exports.Body = _chunk5SUY5UVCjs.Body; exports.ConflictException = _chunkH7OCHDZTjs.ConflictException; exports.Context = _chunkH7OCHDZTjs.Context; exports.Controller = _chunk5SUY5UVCjs.Controller; exports.Ctx = _chunk5SUY5UVCjs.Ctx; exports.CustomResponse = CustomResponse; exports.Define = _chunk5SUY5UVCjs.Define; exports.Delete = _chunk5SUY5UVCjs.Delete; exports.ERROR_SYMBOL = _chunkRLFCI3RGjs.ERROR_SYMBOL; exports.Exception = _chunkH7OCHDZTjs.Exception; exports.Factory = _chunkKRUOHWFRjs.Factory; exports.Filter = _chunk5SUY5UVCjs.Filter; exports.ForbiddenException = _chunkH7OCHDZTjs.ForbiddenException; exports.FrameworkException = _chunkH7OCHDZTjs.FrameworkException; exports.Generator = Generator; exports.Get = _chunk5SUY5UVCjs.Get; exports.Guard = _chunk5SUY5UVCjs.Guard; exports.HTTPGenerator = HTTPGenerator; exports.Head = _chunk5SUY5UVCjs.Head; exports.Header = _chunk5SUY5UVCjs.Header; exports.HttpBase = HttpBase; exports.IS_DEV = _chunkRLFCI3RGjs.IS_DEV; exports.IS_ONLY_GENERATE = _chunkRLFCI3RGjs.IS_ONLY_GENERATE; exports.IS_PURE = _chunkRLFCI3RGjs.IS_PURE; exports.IS_STRICT = _chunkRLFCI3RGjs.IS_STRICT; exports.InvalidInputException = _chunkH7OCHDZTjs.InvalidInputException; exports.LOG_LEVEL = _chunkRLFCI3RGjs.LOG_LEVEL; exports.ManyFiles = _chunk5SUY5UVCjs.ManyFiles; exports.Meta = _chunkKRUOHWFRjs.Meta; exports.Mixin = _chunkRLFCI3RGjs.Mixin; exports.NotFoundException = _chunkH7OCHDZTjs.NotFoundException; exports.OneFile = _chunk5SUY5UVCjs.OneFile; exports.OpenAPIGenerator = OpenAPIGenerator; exports.PAddon = PAddon; exports.PExtension = PExtension; exports.PFilter = PFilter; exports.PGuard = PGuard; exports.PPipe = PPipe; exports.PS_EXIT_CODE = _chunkRLFCI3RGjs.PS_EXIT_CODE; exports.Param = _chunk5SUY5UVCjs.Param; exports.Patch = _chunk5SUY5UVCjs.Patch; exports.PayloadLargeException = _chunkH7OCHDZTjs.PayloadLargeException; exports.Pipe = _chunk5SUY5UVCjs.Pipe; exports.Post = _chunk5SUY5UVCjs.Post; exports.Put = _chunk5SUY5UVCjs.Put; exports.Query = _chunk5SUY5UVCjs.Query; exports.Queue = _chunk5SUY5UVCjs.Queue; exports.RPCGenerator = RPCGenerator; exports.Route = _chunk5SUY5UVCjs.Route; exports.Rpc = _chunk5SUY5UVCjs.Rpc; exports.RpcBase = RpcBase; exports.Search = _chunk5SUY5UVCjs.Search; exports.ServerBase = ServerBase; exports.ServerPhecda = _chunkKRUOHWFRjs.ServerPhecda; exports.ServiceUnavailableException = _chunkH7OCHDZTjs.ServiceUnavailableException; exports.TimeoutException = _chunkH7OCHDZTjs.TimeoutException; exports.TimerException = _chunkH7OCHDZTjs.TimerException; exports.UnauthorizedException = _chunkH7OCHDZTjs.UnauthorizedException; exports.UndefinedException = _chunkH7OCHDZTjs.UndefinedException; exports.UnsupportedMediaTypeException = _chunkH7OCHDZTjs.UnsupportedMediaTypeException; exports.ValidateException = _chunkH7OCHDZTjs.ValidateException; exports.WorkerException = _chunkH7OCHDZTjs.WorkerException; exports.addAddon = _chunkH7OCHDZTjs.addAddon; exports.addFilter = _chunkH7OCHDZTjs.addFilter; exports.addGuard = _chunkH7OCHDZTjs.addGuard; exports.addPipe = _chunkH7OCHDZTjs.addPipe; exports.defaultPipe = _chunkH7OCHDZTjs.defaultPipe; exports.defaultServerInject = _chunkKRUOHWFRjs.defaultServerInject; exports.emitter = _chunkKRUOHWFRjs.emitter; exports.getLogger = _chunkRLFCI3RGjs.getLogger; exports.log = _chunkRLFCI3RGjs.log; exports.phecdaNamespace = _chunkKRUOHWFRjs.phecdaNamespace; exports.runMiddleware = _chunkRLFCI3RGjs.runMiddleware; exports.setLogger = _chunkRLFCI3RGjs.setLogger; exports.useS = _chunkKRUOHWFRjs.useS;
467
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["d:\\myproject\\phecda\\packages\\server\\dist\\index.js"],"names":[],"mappings":"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,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AACjC,IAAI,EAAE,IAAI,CAAC;AACX,gBAAgB,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,gDAAgD,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;AAC9G;AACA,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAA;AACA;AACA;AACA;AACA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,kBAAA;AACA,kBAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"D:\\myproject\\phecda\\packages\\server\\dist\\index.js","sourcesContent":[null]}
package/dist/index.mjs CHANGED
@@ -6,9 +6,10 @@ import {
6
6
  emitter,
7
7
  phecdaNamespace,
8
8
  useS
9
- } from "./chunk-7ZGYJ5OW.mjs";
9
+ } from "./chunk-WTJKTICN.mjs";
10
10
  import {
11
11
  Addon,
12
+ ApiDoc,
12
13
  Arg,
13
14
  BaseParam,
14
15
  Body,
@@ -21,6 +22,8 @@ import {
21
22
  Guard,
22
23
  Head,
23
24
  Header,
25
+ ManyFiles,
26
+ OneFile,
24
27
  Param,
25
28
  Patch,
26
29
  Pipe,
@@ -31,7 +34,7 @@ import {
31
34
  Route,
32
35
  Rpc,
33
36
  Search
34
- } from "./chunk-ODVWOXVB.mjs";
37
+ } from "./chunk-VDOICQ2U.mjs";
35
38
  import {
36
39
  BadGatewayException,
37
40
  BadRequestException,
@@ -57,11 +60,12 @@ import {
57
60
  addPipe,
58
61
  defaultPipe,
59
62
  joinUrl
60
- } from "./chunk-CVPZWDXU.mjs";
63
+ } from "./chunk-LBH4RXQQ.mjs";
61
64
  import {
62
65
  ERROR_SYMBOL,
63
66
  IS_DEV,
64
67
  IS_ONLY_GENERATE,
68
+ IS_PURE,
65
69
  IS_STRICT,
66
70
  LOG_LEVEL,
67
71
  Mixin,
@@ -71,15 +75,14 @@ import {
71
75
  log,
72
76
  runMiddleware,
73
77
  setLogger
74
- } from "./chunk-FXTJ3BJ6.mjs";
78
+ } from "./chunk-MDPW6WGF.mjs";
75
79
 
76
80
  // src/types.ts
77
- var ResponseSymbol = Symbol("response");
78
81
  var CustomResponse = class {
79
82
  static {
80
83
  __name(this, "CustomResponse");
81
84
  }
82
- [ResponseSymbol];
85
+ _ps_response;
83
86
  };
84
87
 
85
88
  // src/modules/base.ts
@@ -248,7 +251,7 @@ var Generator = class {
248
251
  return this._path || `.ps/${this.name.toLowerCase()}.js`;
249
252
  }
250
253
  async output(meta) {
251
- await fse.outputFile(this.path, this.generateCode(meta.map((item) => item.data)));
254
+ await fse.outputFile(this.path, this.generateCode(meta));
252
255
  }
253
256
  };
254
257
 
@@ -281,9 +284,9 @@ var RPCGenerator = class extends Generator {
281
284
  `;
282
285
  }
283
286
  generateCode(meta) {
284
- for (const i of meta) {
285
- if (i.controller === "rpc") this.addMethod(i);
286
- }
287
+ meta.forEach(({ data }) => {
288
+ if (data.controller === "rpc") this.addMethod(data);
289
+ });
287
290
  return this.getContent();
288
291
  }
289
292
  };
@@ -322,9 +325,56 @@ return ret
322
325
  `;
323
326
  }
324
327
  generateCode(meta) {
325
- for (const i of meta) {
326
- if (i.controller === "http") this.addMethod(i);
328
+ meta.forEach(({ data }) => {
329
+ if (data.controller === "http") this.addMethod(data);
330
+ });
331
+ return this.getContent();
332
+ }
333
+ };
334
+
335
+ // src/generator/openapi.ts
336
+ import { getMergedMeta } from "phecda-core";
337
+ var OpenAPIGenerator = class extends Generator {
338
+ static {
339
+ __name(this, "OpenAPIGenerator");
340
+ }
341
+ name = "OpenAPI";
342
+ paths = {};
343
+ getContent() {
344
+ return JSON.stringify({
345
+ openapi: "3.0.0",
346
+ info: {
347
+ title: "API Documentation",
348
+ version: "1.0.0",
349
+ description: "API documentation generated by phecda-server"
350
+ },
351
+ paths: this.paths
352
+ });
353
+ }
354
+ addMethod(args) {
355
+ const { http, tag, func } = args;
356
+ if (!http?.type) return;
357
+ const path = joinUrl(http.prefix, http.route);
358
+ if (!this.paths[path]) {
359
+ this.paths[path] = {};
327
360
  }
361
+ const config = getMergedMeta(useS().getModel(tag), func)["openapi"];
362
+ this.paths[path][http.type] = {
363
+ summary: config.summary,
364
+ description: config.description,
365
+ tags: config.tags || [
366
+ tag
367
+ ],
368
+ deprecated: config.deprecated,
369
+ parameters: config.parameters,
370
+ requestBody: config.requestBody,
371
+ responses: config.responses
372
+ };
373
+ }
374
+ generateCode(meta) {
375
+ meta.forEach(({ data }) => {
376
+ if (data.controller === "http") this.addMethod(data);
377
+ });
328
378
  return this.getContent();
329
379
  }
330
380
  };
@@ -333,6 +383,7 @@ return ret
333
383
  export * from "phecda-core";
334
384
  export {
335
385
  Addon,
386
+ ApiDoc,
336
387
  Arg,
337
388
  BadGatewayException,
338
389
  BadRequestException,
@@ -360,12 +411,16 @@ export {
360
411
  HttpBase,
361
412
  IS_DEV,
362
413
  IS_ONLY_GENERATE,
414
+ IS_PURE,
363
415
  IS_STRICT,
364
416
  InvalidInputException,
365
417
  LOG_LEVEL,
418
+ ManyFiles,
366
419
  Meta,
367
420
  Mixin,
368
421
  NotFoundException,
422
+ OneFile,
423
+ OpenAPIGenerator,
369
424
  PAddon,
370
425
  PExtension,
371
426
  PFilter,
@@ -409,3 +464,4 @@ export {
409
464
  setLogger,
410
465
  useS
411
466
  };
467
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts","../src/modules/base.ts","../src/modules/filter.ts","../src/modules/guard.ts","../src/modules/pipe.ts","../src/modules/addon.ts","../src/modules/extension.ts","../src/generator/utils.ts","../src/generator/rpc.ts","../src/generator/http.ts","../src/generator/openapi.ts","../src/index.ts"],"sourcesContent":["import type { Events } from 'phecda-core'\r\nimport type { ControllerMeta } from './meta'\r\nimport type { ERROR_SYMBOL } from './common'\r\nexport interface Emitter {\r\n on<N extends keyof Events>(eventName: N, cb: (args: Events[N]) => void): void\r\n once<N extends keyof Events>(eventName: N, cb: (args: Events[N]) => void): void\r\n off<N extends keyof Events>(eventName: N, cb: (args: Events[N]) => void): void\r\n removeAllListeners<N extends keyof Events>(eventName: N): void\r\n emit<N extends keyof Events>(eventName: N, param: Events[N]): void\r\n}\r\n\r\nexport interface BaseCtx {\r\n meta: ControllerMeta\r\n moduleMap: Record<string, any>\r\n type: string\r\n tag: string\r\n func: string\r\n category: string\r\n [key: string]: any\r\n\r\n}\r\n\r\nexport interface DefaultOptions {\r\n globalGuards?: string[]\r\n globalFilter?: string\r\n globalPipe?: string\r\n globalAddons?: string[]\r\n}\r\n\r\nexport interface BaseError {\r\n // as a symbol\r\n [ERROR_SYMBOL]: true\r\n status: number\r\n message: string\r\n description: string\r\n}\r\n// export type RetOrErr<R> = { [K in keyof R]: Awaited<R[K]> | Error }\r\n\r\nexport type BaseRequestType = 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options'\r\n\r\nexport class CustomResponse<Value> {\r\n _ps_response: Value\r\n}\r\n\r\nexport type ExtractResponse<Class extends CustomResponse<any>> = Class extends CustomResponse<infer Value> ? Value : never\r\n","import { Base } from 'phecda-core'\r\nimport { type LogLevel, log } from '../../src/utils'\r\nimport type { HttpCtx } from '../http/types'\r\nimport type { RpcCtx } from '../rpc/types'\r\nimport { Ctx } from '../decorators'\r\nimport { emitter } from '../core'\r\n\r\nexport class ServerBase extends Base {\r\n emitter = emitter\r\n\r\n log(msg: unknown, level: LogLevel = 'log') {\r\n log(msg, level, this.tag)\r\n }\r\n}\r\n\r\nexport class HttpBase<Ctx extends HttpCtx = HttpCtx> extends ServerBase {\r\n @Ctx\r\n context: Ctx\r\n}\r\nexport class RpcBase<Ctx extends RpcCtx = RpcCtx> extends ServerBase {\r\n @Ctx\r\n context: Ctx\r\n}\r\n","import { getTag } from 'phecda-core'\r\nimport { Context, addFilter } from '../context'\r\nimport type { Exception } from '../exception'\r\nimport type { BaseCtx, BaseError } from '../types'\r\nimport { ServerBase } from './base'\r\n\r\nexport abstract class PFilter<Ctx extends BaseCtx = any, E extends Exception = Exception > extends ServerBase {\r\n readonly key: PropertyKey\r\n constructor(tag?: string) {\r\n super()\r\n this.key = tag || getTag(this)\r\n\r\n addFilter(this.key, this.use.bind(this))\r\n this.onUnmount(() => {\r\n delete Context.filterRecord[this.key]\r\n })\r\n }\r\n\r\n abstract use(error: Error | E, ctx?: Ctx): BaseError\r\n}\r\n","import { getTag } from 'phecda-core'\r\nimport { Context, addGuard } from '../context'\r\nimport type { BaseCtx } from '../types'\r\nimport { ServerBase } from './base'\r\n\r\nexport abstract class PGuard<Ctx extends BaseCtx = any> extends ServerBase {\r\n abstract use(ctx: Ctx, next: () => Promise<any>): any\r\n readonly key: PropertyKey\r\n priority = 0\r\n\r\n constructor(tag?: string) {\r\n super()\r\n this.key = tag || getTag(this)\r\n\r\n addGuard(this.key, this.use.bind(this), this.priority)\r\n\r\n this.onUnmount(() => {\r\n delete Context.guardRecord[this.key]\r\n })\r\n }\r\n}\r\n","import { getTag } from 'phecda-core'\r\nimport { Context, addPipe } from '../context'\r\nimport type { BaseCtx } from '../types'\r\nimport { ServerBase } from './base'\r\nexport abstract class PPipe<Ctx extends BaseCtx = any> extends ServerBase {\r\n readonly key: PropertyKey\r\n\r\n constructor(tag?: string) {\r\n super()\r\n\r\n this.key = tag || getTag(this)\r\n addPipe(this.key, this.use.bind(this))\r\n this.onUnmount(() => {\r\n delete Context.pipeRecord[this.key]\r\n })\r\n }\r\n\r\n abstract use(param: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, ctx: Ctx): any\r\n}\r\n","import { getTag } from 'phecda-core'\r\nimport { Context, addAddon } from '../context'\r\nimport { ServerBase } from './base'\r\n\r\nexport abstract class PAddon extends ServerBase {\r\n readonly key: PropertyKey\r\n\r\n priority = 0\r\n constructor(tag?: string) {\r\n super()\r\n this.key = tag || getTag(this)\r\n\r\n addAddon(this.key, this.use.bind(this), this.priority)\r\n\r\n this.onUnmount(() => {\r\n delete Context.addonRecord[this.key]\r\n })\r\n }\r\n\r\n abstract use(router: any, framework: string): undefined\r\n}\r\n","import { getTag } from 'phecda-core'\r\nimport type { BaseCtx, BaseError } from '../types'\r\nimport { Context, addAddon, addFilter, addGuard, addPipe } from '../context'\r\nimport type { Exception } from '../exception'\r\nimport { ServerBase } from './base'\r\n\r\nexport interface PExtension<Ctx extends BaseCtx = any, E extends Exception = Exception> {\r\n\r\n guard(ctx: Ctx): Promise<boolean> | boolean\r\n\r\n pipe(param: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, ctx: Ctx): any\r\n\r\n filter(error: Error | E, ctx?: Ctx): BaseError\r\n\r\n addon<Addon = any>(framework: string): Addon\r\n}\r\n\r\nexport class PExtension extends ServerBase {\r\n readonly key: PropertyKey\r\n\r\n guardPriority: number\r\n addonPriority: number\r\n\r\n constructor(tag?: string) {\r\n super()\r\n\r\n const key = this.key = tag || getTag(this)\r\n\r\n if (this.pipe) {\r\n addPipe(key, this.pipe.bind(this))\r\n this.onUnmount(() => {\r\n // no safe enough\r\n delete Context.pipeRecord[key]\r\n })\r\n }\r\n\r\n if (this.addon) {\r\n addAddon(key, this.addon.bind(this), this.addonPriority)\r\n\r\n this.onUnmount(() => {\r\n delete Context.addonRecord[key]\r\n })\r\n }\r\n\r\n if (this.guard) {\r\n addGuard(key, this.guard.bind(this), this.guardPriority)\r\n\r\n this.onUnmount(() => {\r\n delete Context.guardRecord[key]\r\n })\r\n }\r\n\r\n if (this.filter) {\r\n addFilter(key, this.filter.bind(this))\r\n this.onUnmount(() => {\r\n delete Context.filterRecord[key]\r\n })\r\n }\r\n }\r\n}\r\n","import fse from 'fs-extra'\r\nimport type { Meta } from '../meta'\r\nexport abstract class Generator {\r\n private _path: string\r\n constructor(\r\n path?: string,\r\n ) {\r\n if (path)\r\n this._path = path\r\n }\r\n\r\n abstract name: string\r\n\r\n get path() {\r\n return this._path || `.ps/${this.name.toLowerCase()}.js`\r\n }\r\n\r\n abstract generateCode(meta: Meta[]): string\r\n\r\n async output(meta: Meta[]) {\r\n await fse.outputFile(this.path, this.generateCode(meta))\r\n }\r\n}\r\n","import type { ControllerMetaData, Meta } from '../meta'\r\nimport { Generator } from './utils'\r\n\r\nexport class RPCGenerator extends Generator {\r\n name = 'RPC'\r\n classMap: Record<string, { [key: string]: string }> = {}\r\n\r\n getContent() {\r\n let content = ''\r\n\r\n for (const name in this.classMap) {\r\n content += `\r\n export class ${name}{\r\n ${Object.values(this.classMap[name]).reduce((p, c) => p + c)}\r\n }`\r\n }\r\n return content\r\n }\r\n\r\n addMethod(args: ControllerMetaData) {\r\n const {\r\n rpc, name, func, tag,\r\n } = args\r\n\r\n if (!rpc)\r\n return\r\n if (!this.classMap[name])\r\n this.classMap[name] = {}\r\n this.classMap[name][func] = `\r\n ${func}(){\r\n return {tag:'${tag as string}',func:\"${func}\",isEvent:${!!rpc.isEvent},queue:\"${rpc.queue || ''}\"}\r\n\r\n }\r\n `\r\n }\r\n\r\n generateCode(meta: Meta[]): string {\r\n // for (const i of meta) {\r\n // if (i.controller === 'rpc')\r\n // this.addMethod(i as ControllerMetaData)\r\n // }\r\n meta.forEach(({ data }) => {\r\n if (data.controller === 'rpc')\r\n this.addMethod(data as ControllerMetaData)\r\n })\r\n return this.getContent()\r\n }\r\n}\r\n","import { joinUrl } from '../helper'\r\nimport type { ControllerMetaData, Meta } from '../meta'\r\nimport { Generator } from './utils'\r\n\r\nexport class HTTPGenerator extends Generator {\r\n name = 'HTTP'\r\n classMap: Record<string, { [key: string]: string }> = {}\r\n\r\n getContent() {\r\n let content = ''\r\n\r\n for (const name in this.classMap) {\r\n content += `\r\n export class ${name}{\r\n ${Object.values(this.classMap[name]).reduce((p, c) => p + c)}\r\n }`\r\n }\r\n return content\r\n }\r\n\r\n addMethod(args: ControllerMetaData) {\r\n const {\r\n http, name, func, params, tag,\r\n } = args\r\n if (!http?.type)\r\n return\r\n const url = joinUrl(http.prefix, http.route).replace(/\\/\\:([^\\/]*)/g, (_, js) => `/{{${js}}}`)\r\n if (!this.classMap[name])\r\n this.classMap[name] = {}\r\n this.classMap[name][func] = `\r\n ${func}(...args){\r\nconst ret={tag:\"${tag as string}\",func:\"${func}\",body:{},headers:{},query:{},params:{},method:\"${http.type}\",url:\"${url}\"}\r\n\r\n${params.reduce((p, c, i) => `${p}ret.${c.type}${c.key ? `['${c.key}']` : ''}=args[${i}]\\n${c.type === 'params' ? `ret.url=ret.url.replace('{{${c.key}}}',args[${i}])` : ''}\\n`, '')}\r\nreturn ret\r\n }\r\n `\r\n }\r\n\r\n generateCode(meta: Meta[]): string {\r\n meta.forEach(({ data }) => {\r\n if (data.controller === 'http')\r\n this.addMethod(data as ControllerMetaData)\r\n })\r\n return this.getContent()\r\n }\r\n}\r\n","import { useS } from '../core'\r\nimport { joinUrl } from '../helper'\r\nimport type { ControllerMetaData, Meta } from '../meta'\r\nimport { Generator } from './utils'\r\nimport { getMergedMeta } from 'phecda-core'\r\n\r\nexport class OpenAPIGenerator extends Generator {\r\n name = 'OpenAPI'\r\n paths: Record<string, any> = {}\r\n getContent() {\r\n return JSON.stringify({\r\n openapi: '3.0.0',\r\n info: {\r\n title: 'API Documentation',\r\n version: '1.0.0',\r\n description: 'API documentation generated by phecda-server'\r\n },\r\n paths: this.paths\r\n })\r\n }\r\n\r\n addMethod(args: ControllerMetaData) {\r\n const {\r\n http, tag, func\r\n } = args\r\n if (!http?.type)\r\n return\r\n\r\n const path = joinUrl(http.prefix, http.route)\r\n if (!this.paths[path]) {\r\n this.paths[path] = {}\r\n }\r\n\r\n const config = getMergedMeta(useS().getModel(tag), func)['openapi']\r\n this.paths[path][http.type as string] = {\r\n summary: config.summary,\r\n description: config.description,\r\n tags: config.tags || [tag],\r\n deprecated: config.deprecated,\r\n parameters: config.parameters,\r\n requestBody: config.requestBody,\r\n responses: config.responses\r\n };\r\n }\r\n\r\n generateCode(meta: Meta[]): string {\r\n meta.forEach(({ data }) => {\r\n if (data.controller === 'http')\r\n this.addMethod(data as ControllerMetaData)\r\n })\r\n return this.getContent()\r\n }\r\n}\r\n","export * from './context'\r\nexport * from './types'\r\nexport * from './core'\r\nexport * from './decorators'\r\nexport * from './exception'\r\nexport * from './pipe'\r\nexport * from './meta'\r\nexport * from './common'\r\nexport * from './modules'\r\nexport * from './generator'\r\nexport * from './utils'\r\n\r\nexport * from 'phecda-core'\r\n\r\nexport * from './http/types'\r\nexport * from './rpc/types'\r\n"],"mappings":"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","names":["CustomResponse","_ps_response","Base","ServerBase","Base","emitter","log","msg","level","tag","HttpBase","context","RpcBase","getTag","PFilter","ServerBase","key","constructor","tag","getTag","addFilter","use","bind","onUnmount","Context","filterRecord","getTag","PGuard","ServerBase","key","priority","constructor","tag","getTag","addGuard","use","bind","onUnmount","Context","guardRecord","getTag","PPipe","ServerBase","key","constructor","tag","getTag","addPipe","use","bind","onUnmount","Context","pipeRecord","getTag","PAddon","ServerBase","key","priority","constructor","tag","getTag","addAddon","use","bind","onUnmount","Context","addonRecord","getTag","PExtension","ServerBase","key","guardPriority","addonPriority","constructor","tag","getTag","pipe","addPipe","bind","onUnmount","Context","pipeRecord","addon","addAddon","addonRecord","guard","addGuard","guardRecord","filter","addFilter","filterRecord","fse","Generator","_path","constructor","path","name","toLowerCase","output","meta","fse","outputFile","generateCode","RPCGenerator","Generator","name","classMap","getContent","content","Object","values","reduce","p","c","addMethod","args","rpc","func","tag","isEvent","queue","generateCode","meta","forEach","data","controller","HTTPGenerator","Generator","name","classMap","getContent","content","Object","values","reduce","p","c","addMethod","args","http","func","params","tag","type","url","joinUrl","prefix","route","replace","_","js","i","key","generateCode","meta","forEach","data","controller","getMergedMeta","OpenAPIGenerator","Generator","name","paths","getContent","JSON","stringify","openapi","info","title","version","description","addMethod","args","http","tag","func","type","path","joinUrl","prefix","route","config","getMergedMeta","useS","getModel","summary","tags","deprecated","parameters","requestBody","responses","generateCode","meta","forEach","data","controller"]}