phecda-server 5.0.2 → 5.1.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 (167) hide show
  1. package/README.md +10 -108
  2. package/bin/cli.mjs +189 -186
  3. package/bin/schema.json +55 -55
  4. package/dist/{chunk-F5YWXY5W.js → chunk-423JPSEB.js} +18 -17
  5. package/dist/chunk-423JPSEB.js.map +1 -0
  6. package/dist/chunk-4R55T3HG.js +253 -0
  7. package/dist/chunk-4R55T3HG.js.map +1 -0
  8. package/dist/chunk-4YVAW3L4.mjs +76 -0
  9. package/dist/chunk-4YVAW3L4.mjs.map +1 -0
  10. package/dist/{chunk-W5EOVGQD.mjs → chunk-5DOVDDO7.mjs} +3 -2
  11. package/dist/chunk-5DOVDDO7.mjs.map +1 -0
  12. package/dist/{chunk-BXLBWRHS.js → chunk-5WQ2SMIK.js} +39 -38
  13. package/dist/chunk-5WQ2SMIK.js.map +1 -0
  14. package/dist/chunk-6MQP6OHU.mjs +295 -0
  15. package/dist/chunk-6MQP6OHU.mjs.map +1 -0
  16. package/dist/chunk-6Q2PCC3A.mjs +295 -0
  17. package/dist/chunk-6Q2PCC3A.mjs.map +1 -0
  18. package/dist/chunk-6UQYEBAN.js +253 -0
  19. package/dist/chunk-6UQYEBAN.js.map +1 -0
  20. package/dist/chunk-6W7CGOZC.mjs +565 -0
  21. package/dist/chunk-6W7CGOZC.mjs.map +1 -0
  22. package/dist/{chunk-YR5Q5F2K.js → chunk-7Y37NSBM.js} +1 -0
  23. package/dist/chunk-7Y37NSBM.js.map +1 -0
  24. package/dist/{chunk-RCTOVYZY.mjs → chunk-BQBSVGMG.mjs} +2 -1
  25. package/dist/chunk-BQBSVGMG.mjs.map +1 -0
  26. package/dist/chunk-BZP6GKM6.mjs +565 -0
  27. package/dist/chunk-BZP6GKM6.mjs.map +1 -0
  28. package/dist/{chunk-ITTD2GBR.mjs → chunk-C5JAHCS2.mjs} +1 -0
  29. package/dist/chunk-C5JAHCS2.mjs.map +1 -0
  30. package/dist/chunk-DTBKDALR.mjs +295 -0
  31. package/dist/chunk-DTBKDALR.mjs.map +1 -0
  32. package/dist/chunk-GHOKWS5V.js +295 -0
  33. package/dist/chunk-GHOKWS5V.js.map +1 -0
  34. package/dist/chunk-H4N6SHNG.mjs +76 -0
  35. package/dist/chunk-H4N6SHNG.mjs.map +1 -0
  36. package/dist/chunk-ICYHM4UM.js +565 -0
  37. package/dist/chunk-ICYHM4UM.js.map +1 -0
  38. package/dist/chunk-LOLXPM4J.mjs +529 -0
  39. package/dist/chunk-LOLXPM4J.mjs.map +1 -0
  40. package/dist/chunk-MSS6A2TU.js +585 -0
  41. package/dist/chunk-MSS6A2TU.js.map +1 -0
  42. package/dist/{chunk-AB4OX3WV.mjs → chunk-NEM3FY7C.mjs} +2 -1
  43. package/dist/chunk-NEM3FY7C.mjs.map +1 -0
  44. package/dist/chunk-OTHER3YM.mjs +253 -0
  45. package/dist/chunk-OTHER3YM.mjs.map +1 -0
  46. package/dist/chunk-Q2FYFIEY.js +295 -0
  47. package/dist/chunk-Q2FYFIEY.js.map +1 -0
  48. package/dist/chunk-QG4X6H5Y.js +565 -0
  49. package/dist/chunk-QG4X6H5Y.js.map +1 -0
  50. package/dist/chunk-QIEZ6YTG.mjs +295 -0
  51. package/dist/chunk-QIEZ6YTG.mjs.map +1 -0
  52. package/dist/chunk-QOAKHCM7.js +295 -0
  53. package/dist/chunk-QOAKHCM7.js.map +1 -0
  54. package/dist/chunk-QVUD6L5X.js +565 -0
  55. package/dist/chunk-QVUD6L5X.js.map +1 -0
  56. package/dist/{chunk-YERBWZCS.js → chunk-RGLTGKAU.js} +64 -63
  57. package/dist/chunk-RGLTGKAU.js.map +1 -0
  58. package/dist/chunk-SHRK3TVB.js +295 -0
  59. package/dist/chunk-SHRK3TVB.js.map +1 -0
  60. package/dist/chunk-TCH6S42Z.js +529 -0
  61. package/dist/chunk-TCH6S42Z.js.map +1 -0
  62. package/dist/chunk-UCGRFVHC.mjs +253 -0
  63. package/dist/chunk-UCGRFVHC.mjs.map +1 -0
  64. package/dist/chunk-VOISXWVF.mjs +295 -0
  65. package/dist/chunk-VOISXWVF.mjs.map +1 -0
  66. package/dist/chunk-W6BC5INO.mjs +295 -0
  67. package/dist/chunk-W6BC5INO.mjs.map +1 -0
  68. package/dist/chunk-X5WQRO4R.js +295 -0
  69. package/dist/chunk-X5WQRO4R.js.map +1 -0
  70. package/dist/chunk-XDMCVVD3.mjs +585 -0
  71. package/dist/chunk-XDMCVVD3.mjs.map +1 -0
  72. package/dist/chunk-XNTMYLK6.js +76 -0
  73. package/dist/chunk-XNTMYLK6.js.map +1 -0
  74. package/dist/chunk-Y6LI4FDO.js +537 -0
  75. package/dist/chunk-Y6LI4FDO.js.map +1 -0
  76. package/dist/chunk-YZ2AQ6IL.mjs +537 -0
  77. package/dist/chunk-YZ2AQ6IL.mjs.map +1 -0
  78. package/dist/chunk-Z4YJHEXT.js +76 -0
  79. package/dist/chunk-Z4YJHEXT.js.map +1 -0
  80. package/dist/chunk-ZE336SKZ.js +295 -0
  81. package/dist/chunk-ZE336SKZ.js.map +1 -0
  82. package/dist/chunk-ZJD235TO.mjs +565 -0
  83. package/dist/chunk-ZJD235TO.mjs.map +1 -0
  84. package/dist/core-39f27fe8.d.ts +131 -0
  85. package/dist/core-930ea883.d.ts +131 -0
  86. package/dist/core-eb646fe5.d.ts +139 -0
  87. package/dist/helper-06d25b37.d.ts +19 -0
  88. package/dist/helper-48454c0b.d.ts +20 -0
  89. package/dist/helper-6133f78f.d.ts +18 -0
  90. package/dist/helper-867a598d.d.ts +18 -0
  91. package/dist/helper-88b19c66.d.ts +12 -0
  92. package/dist/helper-9e206c66.d.ts +12 -0
  93. package/dist/helper-fcbf6aa8.d.ts +20 -0
  94. package/dist/index.d.ts +27 -32
  95. package/dist/index.js +45 -40
  96. package/dist/index.js.map +1 -0
  97. package/dist/index.mjs +15 -10
  98. package/dist/index.mjs.map +1 -0
  99. package/dist/rpc/bullmq/index.d.ts +10 -6
  100. package/dist/rpc/bullmq/index.js +33 -53
  101. package/dist/rpc/bullmq/index.js.map +1 -0
  102. package/dist/rpc/bullmq/index.mjs +27 -47
  103. package/dist/rpc/bullmq/index.mjs.map +1 -0
  104. package/dist/rpc/kafka/index.d.ts +10 -4
  105. package/dist/rpc/kafka/index.js +21 -37
  106. package/dist/rpc/kafka/index.js.map +1 -0
  107. package/dist/rpc/kafka/index.mjs +16 -32
  108. package/dist/rpc/kafka/index.mjs.map +1 -0
  109. package/dist/rpc/nats/index.d.ts +2 -2
  110. package/dist/rpc/nats/index.js +21 -34
  111. package/dist/rpc/nats/index.js.map +1 -0
  112. package/dist/rpc/nats/index.mjs +14 -27
  113. package/dist/rpc/nats/index.mjs.map +1 -0
  114. package/dist/rpc/rabbitmq/index.d.ts +2 -2
  115. package/dist/rpc/rabbitmq/index.js +24 -37
  116. package/dist/rpc/rabbitmq/index.js.map +1 -0
  117. package/dist/rpc/rabbitmq/index.mjs +15 -28
  118. package/dist/rpc/rabbitmq/index.mjs.map +1 -0
  119. package/dist/rpc/redis/index.d.ts +10 -4
  120. package/dist/rpc/redis/index.js +24 -37
  121. package/dist/rpc/redis/index.js.map +1 -0
  122. package/dist/rpc/redis/index.mjs +17 -30
  123. package/dist/rpc/redis/index.mjs.map +1 -0
  124. package/dist/server/elysia/index.d.ts +4 -3
  125. package/dist/server/elysia/index.js +78 -94
  126. package/dist/server/elysia/index.js.map +1 -0
  127. package/dist/server/elysia/index.mjs +75 -91
  128. package/dist/server/elysia/index.mjs.map +1 -0
  129. package/dist/server/express/index.d.ts +5 -4
  130. package/dist/server/express/index.js +80 -93
  131. package/dist/server/express/index.js.map +1 -0
  132. package/dist/server/express/index.mjs +78 -91
  133. package/dist/server/express/index.mjs.map +1 -0
  134. package/dist/server/fastify/index.d.ts +8 -5
  135. package/dist/server/fastify/index.js +84 -102
  136. package/dist/server/fastify/index.js.map +1 -0
  137. package/dist/server/fastify/index.mjs +80 -98
  138. package/dist/server/fastify/index.mjs.map +1 -0
  139. package/dist/server/h3/index.d.ts +5 -4
  140. package/dist/server/h3/index.js +82 -97
  141. package/dist/server/h3/index.js.map +1 -0
  142. package/dist/server/h3/index.mjs +81 -96
  143. package/dist/server/h3/index.mjs.map +1 -0
  144. package/dist/server/hono/index.d.ts +5 -4
  145. package/dist/server/hono/index.js +74 -90
  146. package/dist/server/hono/index.js.map +1 -0
  147. package/dist/server/hono/index.mjs +73 -89
  148. package/dist/server/hono/index.mjs.map +1 -0
  149. package/dist/server/hyper-express/index.d.ts +6 -5
  150. package/dist/server/hyper-express/index.js +79 -96
  151. package/dist/server/hyper-express/index.js.map +1 -0
  152. package/dist/server/hyper-express/index.mjs +78 -95
  153. package/dist/server/hyper-express/index.mjs.map +1 -0
  154. package/dist/server/koa/index.d.ts +5 -4
  155. package/dist/server/koa/index.js +80 -92
  156. package/dist/server/koa/index.js.map +1 -0
  157. package/dist/server/koa/index.mjs +77 -89
  158. package/dist/server/koa/index.mjs.map +1 -0
  159. package/dist/test.d.ts +1 -1
  160. package/dist/test.js +7 -6
  161. package/dist/test.js.map +1 -0
  162. package/dist/test.mjs +3 -2
  163. package/dist/test.mjs.map +1 -0
  164. package/package.json +8 -7
  165. package/register/index.mjs +40 -40
  166. package/register/loader.mjs +341 -340
  167. package/register/utils.mjs +81 -81
@@ -0,0 +1,76 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
+ var __publicField = (obj, key, value) => {
5
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
+ return value;
7
+ };
8
+
9
+ // src/common.ts
10
+ var UNMOUNT_SYMBOL = "__PS_UNMOUNT__";
11
+ var ERROR_SYMBOL = "__PS_ERROR__";
12
+ var IS_HMR = process.env.NODE_ENV === "development";
13
+ var IS_ONLY_GENERATE = !!process.env.PS_GENERATE;
14
+ var IS_STRICT = !!process.env.PS_STRICT;
15
+ var LOG_LEVEL = Number(process.env.PS_LOG_LEVEL || 0);
16
+ var PS_EXIT_CODE;
17
+ (function(PS_EXIT_CODE2) {
18
+ PS_EXIT_CODE2[PS_EXIT_CODE2["RELAUNCH"] = 2] = "RELAUNCH";
19
+ PS_EXIT_CODE2[PS_EXIT_CODE2["CODE"] = 4] = "CODE";
20
+ })(PS_EXIT_CODE || (PS_EXIT_CODE = exports.PS_EXIT_CODE = {}));
21
+
22
+ // src/utils.ts
23
+ var _picocolors = require('picocolors'); var _picocolors2 = _interopRequireDefault(_picocolors);
24
+ var time;
25
+ var internalLogger = console;
26
+ function setLogger(logger) {
27
+ internalLogger = logger;
28
+ }
29
+ __name(setLogger, "setLogger");
30
+ function log(msg, level = "log") {
31
+ const logLevel = {
32
+ info: 0,
33
+ log: 1,
34
+ warn: 2,
35
+ error: 3
36
+ }[level];
37
+ if (logLevel < LOG_LEVEL)
38
+ return;
39
+ const color = {
40
+ error: "red",
41
+ info: "gray",
42
+ warn: "yellow",
43
+ log: "green"
44
+ }[level];
45
+ const date = new Date();
46
+ const current = Date.now();
47
+ const interval = time && current - time ? `+${current - time}` : "";
48
+ time = current;
49
+ internalLogger[level](`${_picocolors2.default.magenta("[phecda-server]")} ${_picocolors2.default.gray(`${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`)} ${_picocolors2.default[color](msg)} ${_picocolors2.default.gray(interval)}`);
50
+ }
51
+ __name(log, "log");
52
+ function Mix(InternalClass, ExtendClass) {
53
+ return class extends InternalClass {
54
+ constructor(...args) {
55
+ super();
56
+ Object.assign(this, new ExtendClass(...args));
57
+ }
58
+ };
59
+ }
60
+ __name(Mix, "Mix");
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+ exports.__name = __name; exports.__publicField = __publicField; exports.UNMOUNT_SYMBOL = UNMOUNT_SYMBOL; exports.ERROR_SYMBOL = ERROR_SYMBOL; exports.IS_HMR = IS_HMR; exports.IS_ONLY_GENERATE = IS_ONLY_GENERATE; exports.IS_STRICT = IS_STRICT; exports.LOG_LEVEL = LOG_LEVEL; exports.PS_EXIT_CODE = PS_EXIT_CODE; exports.setLogger = setLogger; exports.log = log; exports.Mix = Mix;
76
+ //# sourceMappingURL=chunk-XNTMYLK6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common.ts","../src/utils.ts"],"names":["UNMOUNT_SYMBOL","ERROR_SYMBOL","IS_HMR","process","env","NODE_ENV","IS_ONLY_GENERATE","PS_GENERATE","IS_STRICT","PS_STRICT","LOG_LEVEL","Number","PS_LOG_LEVEL","PS_EXIT_CODE","RELAUNCH","CODE","pc","time","internalLogger","console","setLogger","logger","log","msg","level","logLevel","info","warn","error","color","date","Date","current","now","interval","magenta","gray","getHours","getMinutes","getSeconds","Mix","InternalClass","ExtendClass","constructor","args","Object","assign"],"mappings":";;;;;;;;;AACO,IAAMA,iBAAiB;AAIvB,IAAMC,eAAe;AAErB,IAAMC,SAASC,QAAQC,IAAIC,aAAa;AACxC,IAAMC,mBAAmB,CAAC,CAACH,QAAQC,IAAIG;AACvC,IAAMC,YAAY,CAAC,CAACL,QAAQC,IAAIK;AAChC,IAAMC,YAAYC,OAAOR,QAAQC,IAAIQ,gBAAgB,CAAA;IAErD;UAAKC,eAAY;AAAZA,EAAAA,cAAAA,cACVC,cAAW,KAAXA;AADUD,EAAAA,cAAAA,cAEVE,UAAO,KAAPA;GAFUF,iBAAAA,eAAAA,CAAAA,EAAAA;;;ACZZ,OAAOG,QAAQ;AAIf,IAAIC;AAEJ,IAAIC,iBAA0DC;AAIvD,SAASC,UAAUC,QAAiD;AACzEH,mBAAiBG;AACnB;AAFgBD;AAIT,SAASE,IAAIC,KAAaC,QAAkB,OAAO;AACxD,QAAMC,WAAW;IACfC,MAAM;IACNJ,KAAK;IACLK,MAAM;IACNC,OAAO;EACT,EAAEJ;AAEF,MAAIC,WAAWf;AACb;AAEF,QAAMmB,QAAS;IAAED,OAAO;IAAOF,MAAM;IAAQC,MAAM;IAAUL,KAAK;EAAQ,EAAYE;AACtF,QAAMM,OAAO,IAAIC,KAAAA;AACjB,QAAMC,UAAUD,KAAKE,IAAG;AACxB,QAAMC,WAAYjB,QAAQe,UAAUf,OAAQ,IAAIe,UAAUf,SAAS;AACnEA,SAAOe;AAEPd,iBAAeM,OAAO,GAAGR,GAAGmB,QAAQ,iBAAA,KAAsBnB,GAAGoB,KAAK,GAAGN,KAAKO,SAAQ,KAAMP,KAAKQ,WAAU,KAAMR,KAAKS,WAAU,GAAI,KAAKvB,GAAGa,OAAON,GAAAA,KAAQP,GAAGoB,KAAKF,QAAAA,GAAW;AAC5K;AAlBgBZ;AAoBT,SAASkB,IAA8DC,eAAmBC,aAAiB;AAChH,SAAO,cAAcD,cAAAA;IACnBE,eAAeC,MAAW;AACxB,YAAK;AACLC,aAAOC,OAAO,MAAM,IAAIJ,YAAAA,GAAeE,IAAAA,CAAAA;IACzC;EACF;AACF;AAPgBJ","sourcesContent":["// export const MERGE_SYMBOL = '__PS_MERGE__'// is parallel request in http\r\nexport const UNMOUNT_SYMBOL = '__PS_UNMOUNT__'// property that include unmount callbacks\r\n// export const MODULE_SYMBOL = '__PS_MODULE__'// req[MODULE_SYMBOL]=modulemap\r\n// export const META_SYMBOL = '__PS_META__'// req[META_SYMBOL]=meta\r\n// export const PS_SYMBOL = '__PS__'// (app/router)[PS_SYMBOL]=Factory(...)\r\nexport const ERROR_SYMBOL = '__PS_ERROR__'// only use in paralle request\r\n\r\nexport const IS_HMR = process.env.NODE_ENV === 'development'\r\nexport const IS_ONLY_GENERATE = !!process.env.PS_GENERATE// work for ci; only generate code\r\nexport const IS_STRICT = !!process.env.PS_STRICT// throw error if depends on an aop module which is not imported\r\nexport const LOG_LEVEL = Number(process.env.PS_LOG_LEVEL || 0)// internal logger\r\n\r\nexport enum PS_EXIT_CODE {\r\n RELAUNCH = 2,\r\n CODE = 4,\r\n}\r\n","import pc from 'picocolors'\r\nimport type { AbConstruct, Construct } from 'phecda-core'\r\nimport { LOG_LEVEL } from './common'\r\n\r\nlet time: number\r\n\r\nlet internalLogger: Record<LogLevel, (msg: string) => void> = console\r\n\r\ntype LogLevel = 'error' | 'info' | 'warn' | 'log'\r\n\r\nexport function setLogger(logger: Record<LogLevel, (msg: string) => void>) {\r\n internalLogger = logger\r\n}\r\n\r\nexport function log(msg: string, level: LogLevel = 'log') {\r\n const logLevel = {\r\n info: 0,\r\n log: 1,\r\n warn: 2,\r\n error: 3,\r\n }[level]\r\n\r\n if (logLevel < LOG_LEVEL)\r\n return\r\n\r\n const color = ({ error: 'red', info: 'gray', warn: 'yellow', log: 'green' } as const)[level]\r\n const date = new Date()\r\n const current = Date.now()\r\n const interval = (time && current - time) ? `+${current - time}` : ''\r\n time = current\r\n\r\n internalLogger[level](`${pc.magenta('[phecda-server]')} ${pc.gray(`${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`)} ${pc[color](msg)} ${pc.gray(interval)}`)\r\n}\r\n\r\nexport function Mix<C1 extends Construct | AbConstruct, C2 extends Construct>(InternalClass: C1, ExtendClass: C2) {\r\n return class extends InternalClass {\r\n constructor(...args: any) {\r\n super()\r\n Object.assign(this, new ExtendClass(...args))\r\n }\r\n } as new (...args: ConstructorParameters<C2>) => InstanceType<C1> & InstanceType<C2>\r\n}\r\n"]}
@@ -0,0 +1,537 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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;
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+ var _chunkZ4YJHEXTjs = require('./chunk-Z4YJHEXT.js');
10
+
11
+ // src/exception/base.ts
12
+ var Exception = class extends Error {
13
+
14
+
15
+
16
+ constructor(message, status = 0, description = "Exception") {
17
+ super(message);
18
+ this.message = message;
19
+ this.status = status;
20
+ this.description = description;
21
+ }
22
+ get data() {
23
+ return {
24
+ message: this.message,
25
+ description: this.description,
26
+ status: this.status,
27
+ [_chunkZ4YJHEXTjs.ERROR_SYMBOL]: true
28
+ };
29
+ }
30
+ };
31
+ _chunkZ4YJHEXTjs.__name.call(void 0, Exception, "Exception");
32
+
33
+ // src/exception/validate.ts
34
+ var ValidateException = class extends Exception {
35
+ constructor(message) {
36
+ super(message, 400, "Validate exception");
37
+ }
38
+ };
39
+ _chunkZ4YJHEXTjs.__name.call(void 0, ValidateException, "ValidateException");
40
+
41
+ // src/pipe.ts
42
+ var _phecdacore = require('phecda-core');
43
+ var defaultPipe = /* @__PURE__ */ _chunkZ4YJHEXTjs.__name.call(void 0, ({ arg, reflect, index }) => {
44
+ if (_phecdacore.isPhecda.call(void 0, reflect)) {
45
+ const instance = _phecdacore.plainToClass.call(void 0, reflect, arg);
46
+ const err = _phecdacore.transformInstance.call(void 0, instance);
47
+ if (err.length > 0)
48
+ throw new ValidateException(err[0]);
49
+ arg = instance;
50
+ } else {
51
+ if (arg === void 0 && !reflect)
52
+ return void 0;
53
+ if ([
54
+ Number,
55
+ Boolean
56
+ ].includes(reflect)) {
57
+ arg = reflect(arg);
58
+ if (reflect === Number && Object.is(arg, NaN))
59
+ throw new ValidateException(`parameter ${Number(index) + 1} should be a number`);
60
+ }
61
+ }
62
+ return arg;
63
+ }, "defaultPipe");
64
+
65
+ // src/exception/undefine.ts
66
+ var UndefinedException = class extends Exception {
67
+ constructor(message) {
68
+ super(message, 500, "Undefined error");
69
+ }
70
+ };
71
+ _chunkZ4YJHEXTjs.__name.call(void 0, UndefinedException, "UndefinedException");
72
+
73
+ // src/exception/forbidden.ts
74
+ var ForbiddenException = class extends Exception {
75
+ constructor(message) {
76
+ super(message, 403, "Forbidden resource");
77
+ }
78
+ };
79
+ _chunkZ4YJHEXTjs.__name.call(void 0, ForbiddenException, "ForbiddenException");
80
+
81
+ // src/exception/bad-request.ts
82
+ var BadRequestException = class extends Exception {
83
+ constructor(message) {
84
+ super(message, 400, "Bad Request");
85
+ }
86
+ };
87
+ _chunkZ4YJHEXTjs.__name.call(void 0, BadRequestException, "BadRequestException");
88
+
89
+ // src/exception/not-found.ts
90
+ var NotFoundException = class extends Exception {
91
+ constructor(message) {
92
+ super(message, 404, "Not Found");
93
+ }
94
+ };
95
+ _chunkZ4YJHEXTjs.__name.call(void 0, NotFoundException, "NotFoundException");
96
+
97
+ // src/exception/conflict.ts
98
+ var ConflictException = class extends Exception {
99
+ constructor(message) {
100
+ super(message, 409, "Conflict");
101
+ }
102
+ };
103
+ _chunkZ4YJHEXTjs.__name.call(void 0, ConflictException, "ConflictException");
104
+
105
+ // src/exception/bad-gateway.ts
106
+ var BadGatewayException = class extends Exception {
107
+ constructor(message) {
108
+ super(message, 502, "Bad Gatrway");
109
+ }
110
+ };
111
+ _chunkZ4YJHEXTjs.__name.call(void 0, BadGatewayException, "BadGatewayException");
112
+
113
+ // src/exception/invalid-input.ts
114
+ var InvalidInputException = class extends Exception {
115
+ constructor(message) {
116
+ super(message, 502, "Invalid Input");
117
+ }
118
+ };
119
+ _chunkZ4YJHEXTjs.__name.call(void 0, InvalidInputException, "InvalidInputException");
120
+
121
+ // src/exception/media-type.ts
122
+ var UnsupportedMediaTypeException = class extends Exception {
123
+ constructor(message) {
124
+ super(message, 415, "Unsupported Media Type");
125
+ }
126
+ };
127
+ _chunkZ4YJHEXTjs.__name.call(void 0, UnsupportedMediaTypeException, "UnsupportedMediaTypeException");
128
+
129
+ // src/exception/payload-large.ts
130
+ var PayloadLargeException = class extends Exception {
131
+ constructor(message) {
132
+ super(message, 413, "Payload Too Large");
133
+ }
134
+ };
135
+ _chunkZ4YJHEXTjs.__name.call(void 0, PayloadLargeException, "PayloadLargeException");
136
+
137
+ // src/exception/timeout.ts
138
+ var TimeoutException = class extends Exception {
139
+ constructor(message) {
140
+ super(message, 408, "Request Timeout");
141
+ }
142
+ };
143
+ _chunkZ4YJHEXTjs.__name.call(void 0, TimeoutException, "TimeoutException");
144
+
145
+ // src/exception/unauthorized.ts
146
+ var UnauthorizedException = class extends Exception {
147
+ constructor(message) {
148
+ super(message, 401, "Unauthorized");
149
+ }
150
+ };
151
+ _chunkZ4YJHEXTjs.__name.call(void 0, UnauthorizedException, "UnauthorizedException");
152
+
153
+ // src/exception/unavailable-service.ts
154
+ var ServiceUnavailableException = class extends Exception {
155
+ constructor(message) {
156
+ super(message, 503, "Service Unavailable");
157
+ }
158
+ };
159
+ _chunkZ4YJHEXTjs.__name.call(void 0, ServiceUnavailableException, "ServiceUnavailableException");
160
+
161
+ // src/exception/framework.ts
162
+ var FrameworkException = class extends Exception {
163
+ constructor(message) {
164
+ super(`[phecda-server] ${message}`, 500, "Framework Error");
165
+ }
166
+ };
167
+ _chunkZ4YJHEXTjs.__name.call(void 0, FrameworkException, "FrameworkException");
168
+
169
+ // src/exception/timer.ts
170
+ var TimerException = class extends Exception {
171
+ constructor(message) {
172
+ super(message, 0, "Timer Error");
173
+ }
174
+ };
175
+ _chunkZ4YJHEXTjs.__name.call(void 0, TimerException, "TimerException");
176
+
177
+ // src/exception/worker.ts
178
+ var WorkerException = class extends Exception {
179
+ constructor(message) {
180
+ super(message, 0, "Worker Error");
181
+ }
182
+ };
183
+ _chunkZ4YJHEXTjs.__name.call(void 0, WorkerException, "WorkerException");
184
+
185
+ // src/hmr.ts
186
+ function HMR(cb) {
187
+ if (_chunkZ4YJHEXTjs.IS_HMR)
188
+ _optionalChain([globalThis, 'access', _ => _.__PS_HMR__, 'optionalAccess', _2 => _2.push, 'call', _3 => _3(cb)]);
189
+ }
190
+ _chunkZ4YJHEXTjs.__name.call(void 0, HMR, "HMR");
191
+
192
+ // src/server/helper.ts
193
+ function resolveDep(ret, key) {
194
+ if (key)
195
+ return _optionalChain([ret, 'optionalAccess', _4 => _4[key]]);
196
+ return ret;
197
+ }
198
+ _chunkZ4YJHEXTjs.__name.call(void 0, resolveDep, "resolveDep");
199
+ function argToReq(params, args, headers) {
200
+ const req = {
201
+ body: {},
202
+ query: {},
203
+ params: {},
204
+ headers
205
+ };
206
+ params.forEach((param) => {
207
+ if (param.key)
208
+ req[param.type][param.key] = args[param.index];
209
+ else
210
+ req[param.type] = args[param.index];
211
+ });
212
+ return req;
213
+ }
214
+ _chunkZ4YJHEXTjs.__name.call(void 0, argToReq, "argToReq");
215
+
216
+ // src/rpc/helper.ts
217
+ var _os = require('os');
218
+ function genClientQueue(key) {
219
+ return `PS-${key ? `${key}-` : ""}${_os.hostname.call(void 0, )}-${process.pid}`;
220
+ }
221
+ _chunkZ4YJHEXTjs.__name.call(void 0, genClientQueue, "genClientQueue");
222
+
223
+ // src/decorators/helper.ts
224
+ function shallowClone(obj) {
225
+ return {
226
+ ...obj
227
+ };
228
+ }
229
+ _chunkZ4YJHEXTjs.__name.call(void 0, shallowClone, "shallowClone");
230
+ function mergeObject(...args) {
231
+ return Object.assign({}, ...args);
232
+ }
233
+ _chunkZ4YJHEXTjs.__name.call(void 0, mergeObject, "mergeObject");
234
+ function mergeArray(...args) {
235
+ return args.filter((item) => !!item).flat();
236
+ }
237
+ _chunkZ4YJHEXTjs.__name.call(void 0, mergeArray, "mergeArray");
238
+
239
+ // src/context.ts
240
+ var _picocolors = require('picocolors'); var _picocolors2 = _interopRequireDefault(_picocolors);
241
+ var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
242
+
243
+ // src/filter.ts
244
+ var defaultFilter = /* @__PURE__ */ _chunkZ4YJHEXTjs.__name.call(void 0, (e) => {
245
+ if (!(e instanceof Exception)) {
246
+ _chunkZ4YJHEXTjs.log.call(void 0, e.message, "error");
247
+ if (_chunkZ4YJHEXTjs.LOG_LEVEL <= 0)
248
+ console.error(e.stack);
249
+ e = new UndefinedException(e.message || e);
250
+ } else {
251
+ _chunkZ4YJHEXTjs.log.call(void 0, `[${e.constructor.name}] ${e.message}`, "error");
252
+ if (_chunkZ4YJHEXTjs.LOG_LEVEL <= 0)
253
+ console.error(e.stack);
254
+ }
255
+ return e.data;
256
+ }, "defaultFilter");
257
+
258
+ // src/history.ts
259
+ var Histroy = (_class = class {constructor() { _class.prototype.__init.call(this);_class.prototype.__init2.call(this); }
260
+ __init() {this.guard = []}
261
+ __init2() {this.interceptor = []}
262
+ record(name, type) {
263
+ if (!this[type].includes(name)) {
264
+ this[type].push(name);
265
+ return true;
266
+ }
267
+ return false;
268
+ }
269
+ }, _class);
270
+ _chunkZ4YJHEXTjs.__name.call(void 0, Histroy, "Histroy");
271
+
272
+ // src/context.ts
273
+ var debug = _debug2.default.call(void 0, "phecda-server(Context)");
274
+ var _Context = class {
275
+
276
+
277
+
278
+
279
+
280
+ constructor(data) {
281
+ this.data = data;
282
+ this.history = new Histroy();
283
+ if (_chunkZ4YJHEXTjs.IS_HMR)
284
+ data._context = this;
285
+ }
286
+ async run(opts, successCb, failCb) {
287
+ const { meta, moduleMap } = this.data;
288
+ const { globalGuards = [], globalFilter, globalInterceptors = [], globalPipe } = opts;
289
+ const { paramsType, data: { guards, interceptors, params, tag, func, ctx, filter } } = meta;
290
+ try {
291
+ await this.useGuard([
292
+ ...globalGuards,
293
+ ...guards
294
+ ]);
295
+ const i1 = await this.useInterceptor([
296
+ ...globalInterceptors,
297
+ ...interceptors
298
+ ]);
299
+ if (i1 !== void 0)
300
+ return successCb(i1);
301
+ const args = await this.usePipe(params.map((param) => {
302
+ return {
303
+ arg: resolveDep(this.data[param.type], param.key),
304
+ reflect: paramsType[param.index],
305
+ ...param,
306
+ pipe: param.pipe || globalPipe
307
+ };
308
+ }));
309
+ const instance = moduleMap.get(tag);
310
+ if (ctx)
311
+ instance[ctx] = this.data;
312
+ const returnData = await instance[func](...args);
313
+ const i2 = await this.usePostInterceptor(returnData);
314
+ if (i2 !== void 0)
315
+ return successCb(i2);
316
+ return successCb(returnData);
317
+ } catch (e) {
318
+ const err = await this.useFilter(e, filter || globalFilter);
319
+ return failCb(err);
320
+ }
321
+ }
322
+ usePipe(args) {
323
+ return Promise.all(args.map((item) => {
324
+ if (item.pipe && !_Context.pipeRecord[item.pipe]) {
325
+ if (_chunkZ4YJHEXTjs.IS_STRICT) {
326
+ throw new FrameworkException(`can't find pipe named '${item.pipe}'`);
327
+ } else {
328
+ debug(`Can't find pipe named "${item.pipe}" when handling the ${item.index + 1}th argument of the func "${this.data.func}" on module "${this.data.tag}",use default pipe instead`);
329
+ return _Context.pipeRecord.default(item, this.data);
330
+ }
331
+ }
332
+ return _Context.pipeRecord[item.pipe || "default"](item, this.data);
333
+ }));
334
+ }
335
+ useFilter(arg, filter = "default") {
336
+ if (!_Context.filterRecord[filter]) {
337
+ if (_chunkZ4YJHEXTjs.IS_STRICT) {
338
+ throw new FrameworkException(`can't find filter named "${filter}"`);
339
+ } else {
340
+ debug(`Can't find filter named "${filter}" when handling func "${this.data.func}" on module "${this.data.tag}",use default filter instead`);
341
+ return _Context.filterRecord.default(arg, this.data);
342
+ }
343
+ }
344
+ return _Context.filterRecord[filter](arg, this.data);
345
+ }
346
+ async useGuard(guards) {
347
+ for (const guard of guards) {
348
+ if (this.history.record(guard, "guard")) {
349
+ if (!(guard in _Context.guardRecord)) {
350
+ if (_chunkZ4YJHEXTjs.IS_STRICT)
351
+ throw new FrameworkException(`Can't find guard named "${guard}"`);
352
+ else
353
+ debug(`Can't find guard named "${guard}" when handling func "${this.data.func}" on module "${this.data.tag}",skip it`);
354
+ continue;
355
+ }
356
+ if (!await _Context.guardRecord[guard](this.data))
357
+ throw new ForbiddenException(`Guard exception--[${guard}]`);
358
+ }
359
+ }
360
+ }
361
+ async usePostInterceptor(data) {
362
+ for (const cb of this.postInterceptors) {
363
+ const ret = await cb(data);
364
+ if (ret !== void 0)
365
+ return ret;
366
+ }
367
+ }
368
+ async useInterceptor(interceptors) {
369
+ const cb = [];
370
+ for (const interceptor of interceptors) {
371
+ if (this.history.record(interceptor, "interceptor")) {
372
+ if (!(interceptor in _Context.interceptorRecord)) {
373
+ if (_chunkZ4YJHEXTjs.IS_STRICT)
374
+ throw new FrameworkException(`can't find interceptor named "${interceptor}"`);
375
+ else
376
+ debug(`Can't find interceptor named "${interceptor}" when handling func "${this.data.func}" on module "${this.data.tag}",skip it`);
377
+ continue;
378
+ }
379
+ const interceptRet = await _Context.interceptorRecord[interceptor](this.data);
380
+ if (interceptRet !== void 0) {
381
+ if (typeof interceptRet === "function")
382
+ cb.push(interceptRet);
383
+ else
384
+ return interceptRet;
385
+ }
386
+ }
387
+ }
388
+ this.postInterceptors = cb;
389
+ }
390
+ static usePlugin(plugins) {
391
+ const ret = [];
392
+ for (const m of plugins) {
393
+ if (!(m in _Context.pluginRecord)) {
394
+ if (_chunkZ4YJHEXTjs.IS_STRICT)
395
+ throw new FrameworkException(`can't find middleware named '${m}'`);
396
+ continue;
397
+ }
398
+ ret.push(_Context.pluginRecord[m]);
399
+ }
400
+ return ret;
401
+ }
402
+ };
403
+ var Context = _Context;
404
+ _chunkZ4YJHEXTjs.__name.call(void 0, Context, "Context");
405
+ _chunkZ4YJHEXTjs.__publicField.call(void 0, Context, "filterRecord", {
406
+ default: defaultFilter
407
+ });
408
+ _chunkZ4YJHEXTjs.__publicField.call(void 0, Context, "pipeRecord", {
409
+ default: defaultPipe
410
+ });
411
+ _chunkZ4YJHEXTjs.__publicField.call(void 0, Context, "guardRecord", {});
412
+ _chunkZ4YJHEXTjs.__publicField.call(void 0, Context, "interceptorRecord", {});
413
+ _chunkZ4YJHEXTjs.__publicField.call(void 0, Context, "pluginRecord", {});
414
+ function addPlugin(key, handler) {
415
+ if (Context.pluginRecord[key] && Context.pluginRecord[key] !== handler)
416
+ _chunkZ4YJHEXTjs.log.call(void 0, `overwrite Plugin "${String(key)}"`, "warn");
417
+ Context.pluginRecord[key] = handler;
418
+ }
419
+ _chunkZ4YJHEXTjs.__name.call(void 0, addPlugin, "addPlugin");
420
+ function addPipe(key, handler) {
421
+ if (Context.pipeRecord[key] && Context.pipeRecord[key] !== handler)
422
+ _chunkZ4YJHEXTjs.log.call(void 0, `overwrite Pipe "${String(key)}"`, "warn");
423
+ Context.pipeRecord[key] = handler;
424
+ }
425
+ _chunkZ4YJHEXTjs.__name.call(void 0, addPipe, "addPipe");
426
+ function addFilter(key, handler) {
427
+ if (Context.filterRecord[key] && Context.filterRecord[key] !== handler)
428
+ _chunkZ4YJHEXTjs.log.call(void 0, `overwrite Filter "${String(key)}"`, "warn");
429
+ Context.filterRecord[key] = handler;
430
+ }
431
+ _chunkZ4YJHEXTjs.__name.call(void 0, addFilter, "addFilter");
432
+ function addGuard(key, handler) {
433
+ if (Context.guardRecord[key] && Context.guardRecord[key] !== handler)
434
+ _chunkZ4YJHEXTjs.log.call(void 0, `overwrite Guard "${String(key)}"`, "warn");
435
+ Context.guardRecord[key] = handler;
436
+ }
437
+ _chunkZ4YJHEXTjs.__name.call(void 0, addGuard, "addGuard");
438
+ function addInterceptor(key, handler) {
439
+ if (Context.interceptorRecord[key] && Context.interceptorRecord[key] !== handler)
440
+ _chunkZ4YJHEXTjs.log.call(void 0, `overwrite Interceptor "${String(key)}"`, "warn");
441
+ Context.interceptorRecord[key] = handler;
442
+ }
443
+ _chunkZ4YJHEXTjs.__name.call(void 0, addInterceptor, "addInterceptor");
444
+ function detectAopDep(meta, { guards, interceptors, plugins } = {}, controller = "http") {
445
+ const pluginSet = new Set(plugins);
446
+ const guardSet = new Set(guards);
447
+ const interceptorSet = new Set(interceptors);
448
+ const pipeSet = /* @__PURE__ */ new Set();
449
+ const filterSet = /* @__PURE__ */ new Set();
450
+ const warningSet = /* @__PURE__ */ new Set();
451
+ meta.forEach(({ data }) => {
452
+ if (data.controller !== controller) {
453
+ if (data[controller])
454
+ warningSet.add(`Module "${data.tag === data.name ? data.name : `${data.name}(${data.tag})`}" should use ${controller} controller to decorate class or remove ${controller} decorator on method "${data.func}"`);
455
+ return;
456
+ }
457
+ if (data.filter)
458
+ filterSet.add(data.filter);
459
+ data.interceptors.forEach((i) => interceptorSet.add(i));
460
+ data.guards.forEach((i) => guardSet.add(i));
461
+ data.plugins.forEach((i) => pluginSet.add(i));
462
+ data.params.forEach((i) => {
463
+ if (i.pipe)
464
+ pipeSet.add(i.pipe);
465
+ });
466
+ });
467
+ const missPlugins = [
468
+ ...pluginSet
469
+ ].filter((i) => !Context.pluginRecord[i]);
470
+ const missGuards = [
471
+ ...guardSet
472
+ ].filter((i) => !Context.guardRecord[i]);
473
+ const missInterceptors = [
474
+ ...interceptorSet
475
+ ].filter((i) => !Context.interceptorRecord[i]);
476
+ const missPipes = [
477
+ ...pipeSet
478
+ ].filter((i) => !Context.pipeRecord[i]);
479
+ const missFilters = [
480
+ ...filterSet
481
+ ].filter((i) => !Context.filterRecord[i]);
482
+ if (missPlugins.length)
483
+ _chunkZ4YJHEXTjs.log.call(void 0, `${_picocolors2.default.white(`Plugin [${missPlugins.join(",")}]`)} doesn't exist`, "warn");
484
+ if (missGuards.length)
485
+ _chunkZ4YJHEXTjs.log.call(void 0, `${_picocolors2.default.magenta(`Guard [${missGuards.join(",")}]`)} doesn't exist`, "warn");
486
+ if (missInterceptors.length)
487
+ _chunkZ4YJHEXTjs.log.call(void 0, `${_picocolors2.default.cyan(`Interceptor [${missInterceptors.join(",")}]`)} doesn't exist`, "warn");
488
+ if (missPipes.length)
489
+ _chunkZ4YJHEXTjs.log.call(void 0, `${_picocolors2.default.blue(`Pipe [${missPipes.join(",")}]`)} doesn't exist`, "warn");
490
+ if (missFilters.length)
491
+ _chunkZ4YJHEXTjs.log.call(void 0, `${_picocolors2.default.red(`Filter [${missFilters.join(",")}]`)} doesn't exist`, "warn");
492
+ warningSet.forEach((warn) => _chunkZ4YJHEXTjs.log.call(void 0, warn, "warn"));
493
+ return {
494
+ missPlugins,
495
+ missGuards,
496
+ missInterceptors,
497
+ missPipes,
498
+ missFilters
499
+ };
500
+ }
501
+ _chunkZ4YJHEXTjs.__name.call(void 0, detectAopDep, "detectAopDep");
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+ exports.Exception = Exception; exports.ValidateException = ValidateException; exports.defaultPipe = defaultPipe; exports.UndefinedException = UndefinedException; exports.ForbiddenException = ForbiddenException; exports.BadRequestException = BadRequestException; exports.NotFoundException = NotFoundException; exports.ConflictException = ConflictException; exports.BadGatewayException = BadGatewayException; exports.InvalidInputException = InvalidInputException; exports.UnsupportedMediaTypeException = UnsupportedMediaTypeException; exports.PayloadLargeException = PayloadLargeException; exports.TimeoutException = TimeoutException; exports.UnauthorizedException = UnauthorizedException; exports.ServiceUnavailableException = ServiceUnavailableException; exports.FrameworkException = FrameworkException; exports.TimerException = TimerException; exports.WorkerException = WorkerException; exports.HMR = HMR; exports.resolveDep = resolveDep; exports.argToReq = argToReq; exports.genClientQueue = genClientQueue; exports.shallowClone = shallowClone; exports.mergeObject = mergeObject; exports.mergeArray = mergeArray; exports.Context = Context; exports.addPlugin = addPlugin; exports.addPipe = addPipe; exports.addFilter = addFilter; exports.addGuard = addGuard; exports.addInterceptor = addInterceptor; exports.detectAopDep = detectAopDep;
537
+ //# sourceMappingURL=chunk-Y6LI4FDO.js.map