egg 4.0.10 → 4.1.0-beta.10

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 (291) hide show
  1. package/README.md +4 -22
  2. package/dist/agent.d.ts +8 -0
  3. package/dist/agent.js +11 -0
  4. package/dist/app/extend/context.d.ts +207 -0
  5. package/dist/app/extend/context.js +244 -0
  6. package/{src/app/extend/helper.ts → dist/app/extend/helper.d.ts} +8 -10
  7. package/dist/app/extend/helper.js +47 -0
  8. package/dist/app/extend/request.d.ts +145 -0
  9. package/dist/app/extend/request.js +226 -0
  10. package/{src/app/extend/response.ts → dist/app/extend/response.d.ts} +7 -16
  11. package/dist/app/extend/response.js +36 -0
  12. package/dist/app/middleware/body_parser.d.ts +2 -0
  13. package/dist/app/middleware/body_parser.js +7 -0
  14. package/dist/app/middleware/meta.d.ts +11 -0
  15. package/dist/app/middleware/meta.js +14 -0
  16. package/dist/app/middleware/notfound.d.ts +11 -0
  17. package/dist/app/middleware/notfound.js +26 -0
  18. package/dist/app/middleware/override_method.d.ts +2 -0
  19. package/dist/app/middleware/override_method.js +7 -0
  20. package/dist/app/middleware/site_file.d.ts +13 -0
  21. package/dist/app/middleware/site_file.js +38 -0
  22. package/dist/config/config.default.d.ts +12 -0
  23. package/dist/config/config.default.js +260 -0
  24. package/dist/config/config.local.d.ts +10 -0
  25. package/dist/config/config.local.js +7 -0
  26. package/dist/config/config.unittest.d.ts +9 -0
  27. package/dist/config/config.unittest.js +10 -0
  28. package/{src/config/plugin.ts → dist/config/plugin.d.ts} +41 -49
  29. package/dist/config/plugin.js +54 -0
  30. package/dist/index.d.ts +19 -0
  31. package/dist/index.js +21 -0
  32. package/dist/lib/agent.d.ts +22 -0
  33. package/dist/lib/agent.js +56 -0
  34. package/dist/lib/application.d.ts +71 -0
  35. package/dist/lib/application.js +209 -0
  36. package/dist/lib/core/base_context_class.d.ts +23 -0
  37. package/dist/lib/core/base_context_class.js +19 -0
  38. package/dist/lib/core/base_context_logger.d.ts +40 -0
  39. package/dist/lib/core/base_context_logger.js +58 -0
  40. package/dist/lib/core/base_hook_class.d.ts +18 -0
  41. package/dist/lib/core/base_hook_class.js +26 -0
  42. package/dist/lib/core/context_httpclient.d.ts +22 -0
  43. package/dist/lib/core/context_httpclient.js +29 -0
  44. package/dist/lib/core/httpclient.d.ts +17 -0
  45. package/dist/lib/core/httpclient.js +36 -0
  46. package/dist/lib/core/logger.d.ts +7 -0
  47. package/dist/lib/core/logger.js +31 -0
  48. package/{src/lib/core/messenger/IMessenger.ts → dist/lib/core/messenger/IMessenger.d.ts} +6 -10
  49. package/dist/lib/core/messenger/IMessenger.js +1 -0
  50. package/dist/lib/core/messenger/base.d.ts +12 -0
  51. package/dist/lib/core/messenger/base.js +29 -0
  52. package/dist/lib/core/messenger/index.d.ts +11 -0
  53. package/dist/lib/core/messenger/index.js +13 -0
  54. package/dist/lib/core/messenger/ipc.d.ts +63 -0
  55. package/dist/lib/core/messenger/ipc.js +122 -0
  56. package/dist/lib/core/messenger/local.d.ts +65 -0
  57. package/dist/lib/core/messenger/local.js +126 -0
  58. package/dist/lib/core/utils.d.ts +5 -0
  59. package/dist/lib/core/utils.js +48 -0
  60. package/dist/lib/egg.d.ts +306 -0
  61. package/dist/lib/egg.js +512 -0
  62. package/dist/lib/error/CookieLimitExceedError.d.ts +8 -0
  63. package/dist/lib/error/CookieLimitExceedError.js +15 -0
  64. package/dist/lib/error/MessageUnhandledRejectionError.d.ts +8 -0
  65. package/dist/lib/error/MessageUnhandledRejectionError.js +15 -0
  66. package/dist/lib/error/index.d.ts +3 -0
  67. package/dist/lib/error/index.js +4 -0
  68. package/dist/lib/loader/AgentWorkerLoader.d.ts +17 -0
  69. package/dist/lib/loader/AgentWorkerLoader.js +24 -0
  70. package/dist/lib/loader/AppWorkerLoader.d.ts +22 -0
  71. package/dist/lib/loader/AppWorkerLoader.js +37 -0
  72. package/dist/lib/loader/EggApplicationLoader.d.ts +8 -0
  73. package/dist/lib/loader/EggApplicationLoader.js +7 -0
  74. package/dist/lib/loader/index.d.ts +4 -0
  75. package/dist/lib/loader/index.js +5 -0
  76. package/dist/lib/start.d.ts +28 -0
  77. package/dist/lib/start.js +36 -0
  78. package/{src/lib/types.ts → dist/lib/types.d.ts} +73 -94
  79. package/dist/lib/types.js +36 -0
  80. package/dist/lib/utils.d.ts +5 -0
  81. package/dist/lib/utils.js +14 -0
  82. package/dist/urllib.d.ts +1 -0
  83. package/dist/urllib.js +3 -0
  84. package/package.json +81 -99
  85. package/README.zh-CN.md +0 -61
  86. package/dist/commonjs/agent.d.ts +0 -4
  87. package/dist/commonjs/agent.js +0 -10
  88. package/dist/commonjs/app/extend/context.d.ts +0 -204
  89. package/dist/commonjs/app/extend/context.js +0 -262
  90. package/dist/commonjs/app/extend/helper.d.ts +0 -37
  91. package/dist/commonjs/app/extend/helper.js +0 -49
  92. package/dist/commonjs/app/extend/request.d.ts +0 -141
  93. package/dist/commonjs/app/extend/request.js +0 -270
  94. package/dist/commonjs/app/extend/response.d.ts +0 -31
  95. package/dist/commonjs/app/extend/response.js +0 -37
  96. package/dist/commonjs/app/middleware/body_parser.d.ts +0 -2
  97. package/dist/commonjs/app/middleware/body_parser.js +0 -8
  98. package/dist/commonjs/app/middleware/meta.d.ts +0 -10
  99. package/dist/commonjs/app/middleware/meta.js +0 -22
  100. package/dist/commonjs/app/middleware/notfound.d.ts +0 -7
  101. package/dist/commonjs/app/middleware/notfound.js +0 -31
  102. package/dist/commonjs/app/middleware/override_method.d.ts +0 -2
  103. package/dist/commonjs/app/middleware/override_method.js +0 -8
  104. package/dist/commonjs/app/middleware/site_file.d.ts +0 -9
  105. package/dist/commonjs/app/middleware/site_file.js +0 -58
  106. package/dist/commonjs/config/config.default.d.ts +0 -9
  107. package/dist/commonjs/config/config.default.js +0 -379
  108. package/dist/commonjs/config/config.local.d.ts +0 -8
  109. package/dist/commonjs/config/config.local.js +0 -12
  110. package/dist/commonjs/config/config.unittest.d.ts +0 -7
  111. package/dist/commonjs/config/config.unittest.js +0 -11
  112. package/dist/commonjs/config/plugin.d.ts +0 -122
  113. package/dist/commonjs/config/plugin.js +0 -124
  114. package/dist/commonjs/index.d.ts +0 -69
  115. package/dist/commonjs/index.js +0 -83
  116. package/dist/commonjs/lib/agent.d.ts +0 -19
  117. package/dist/commonjs/lib/agent.js +0 -58
  118. package/dist/commonjs/lib/application.d.ts +0 -67
  119. package/dist/commonjs/lib/application.js +0 -266
  120. package/dist/commonjs/lib/core/base_context_class.d.ts +0 -17
  121. package/dist/commonjs/lib/core/base_context_class.js +0 -21
  122. package/dist/commonjs/lib/core/base_context_logger.d.ts +0 -36
  123. package/dist/commonjs/lib/core/base_context_logger.js +0 -64
  124. package/dist/commonjs/lib/core/base_hook_class.d.ts +0 -11
  125. package/dist/commonjs/lib/core/base_hook_class.js +0 -29
  126. package/dist/commonjs/lib/core/context_httpclient.d.ts +0 -16
  127. package/dist/commonjs/lib/core/context_httpclient.js +0 -30
  128. package/dist/commonjs/lib/core/httpclient.d.ts +0 -14
  129. package/dist/commonjs/lib/core/httpclient.js +0 -42
  130. package/dist/commonjs/lib/core/logger.d.ts +0 -3
  131. package/dist/commonjs/lib/core/logger.js +0 -40
  132. package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +0 -50
  133. package/dist/commonjs/lib/core/messenger/IMessenger.js +0 -3
  134. package/dist/commonjs/lib/core/messenger/base.d.ts +0 -8
  135. package/dist/commonjs/lib/core/messenger/base.js +0 -31
  136. package/dist/commonjs/lib/core/messenger/index.d.ts +0 -7
  137. package/dist/commonjs/lib/core/messenger/index.js +0 -15
  138. package/dist/commonjs/lib/core/messenger/ipc.d.ts +0 -58
  139. package/dist/commonjs/lib/core/messenger/ipc.js +0 -135
  140. package/dist/commonjs/lib/core/messenger/local.d.ts +0 -60
  141. package/dist/commonjs/lib/core/messenger/local.js +0 -132
  142. package/dist/commonjs/lib/core/utils.d.ts +0 -2
  143. package/dist/commonjs/lib/core/utils.js +0 -77
  144. package/dist/commonjs/lib/egg.d.ts +0 -305
  145. package/dist/commonjs/lib/egg.js +0 -628
  146. package/dist/commonjs/lib/error/CookieLimitExceedError.d.ts +0 -5
  147. package/dist/commonjs/lib/error/CookieLimitExceedError.js +0 -16
  148. package/dist/commonjs/lib/error/MessageUnhandledRejectionError.d.ts +0 -5
  149. package/dist/commonjs/lib/error/MessageUnhandledRejectionError.js +0 -16
  150. package/dist/commonjs/lib/error/index.d.ts +0 -2
  151. package/dist/commonjs/lib/error/index.js +0 -19
  152. package/dist/commonjs/lib/loader/AgentWorkerLoader.d.ts +0 -12
  153. package/dist/commonjs/lib/loader/AgentWorkerLoader.js +0 -24
  154. package/dist/commonjs/lib/loader/AppWorkerLoader.d.ts +0 -17
  155. package/dist/commonjs/lib/loader/AppWorkerLoader.js +0 -43
  156. package/dist/commonjs/lib/loader/EggApplicationLoader.d.ts +0 -4
  157. package/dist/commonjs/lib/loader/EggApplicationLoader.js +0 -8
  158. package/dist/commonjs/lib/loader/index.d.ts +0 -3
  159. package/dist/commonjs/lib/loader/index.js +0 -22
  160. package/dist/commonjs/lib/start.d.ts +0 -24
  161. package/dist/commonjs/lib/start.js +0 -49
  162. package/dist/commonjs/lib/types.d.ts +0 -257
  163. package/dist/commonjs/lib/types.js +0 -16
  164. package/dist/commonjs/lib/utils.d.ts +0 -2
  165. package/dist/commonjs/lib/utils.js +0 -21
  166. package/dist/commonjs/package.json +0 -3
  167. package/dist/commonjs/urllib.d.ts +0 -1
  168. package/dist/commonjs/urllib.js +0 -18
  169. package/dist/esm/agent.d.ts +0 -4
  170. package/dist/esm/agent.js +0 -7
  171. package/dist/esm/app/extend/context.d.ts +0 -204
  172. package/dist/esm/app/extend/context.js +0 -259
  173. package/dist/esm/app/extend/helper.d.ts +0 -37
  174. package/dist/esm/app/extend/helper.js +0 -43
  175. package/dist/esm/app/extend/request.d.ts +0 -141
  176. package/dist/esm/app/extend/request.js +0 -264
  177. package/dist/esm/app/extend/response.d.ts +0 -31
  178. package/dist/esm/app/extend/response.js +0 -34
  179. package/dist/esm/app/middleware/body_parser.d.ts +0 -2
  180. package/dist/esm/app/middleware/body_parser.js +0 -3
  181. package/dist/esm/app/middleware/meta.d.ts +0 -10
  182. package/dist/esm/app/middleware/meta.js +0 -20
  183. package/dist/esm/app/middleware/notfound.d.ts +0 -7
  184. package/dist/esm/app/middleware/notfound.js +0 -29
  185. package/dist/esm/app/middleware/override_method.d.ts +0 -2
  186. package/dist/esm/app/middleware/override_method.js +0 -3
  187. package/dist/esm/app/middleware/site_file.d.ts +0 -9
  188. package/dist/esm/app/middleware/site_file.js +0 -53
  189. package/dist/esm/config/config.default.d.ts +0 -9
  190. package/dist/esm/config/config.default.js +0 -374
  191. package/dist/esm/config/config.local.d.ts +0 -8
  192. package/dist/esm/config/config.local.js +0 -10
  193. package/dist/esm/config/config.unittest.d.ts +0 -7
  194. package/dist/esm/config/config.unittest.js +0 -9
  195. package/dist/esm/config/favicon.png +0 -0
  196. package/dist/esm/config/plugin.d.ts +0 -122
  197. package/dist/esm/config/plugin.js +0 -122
  198. package/dist/esm/index.d.ts +0 -69
  199. package/dist/esm/index.js +0 -73
  200. package/dist/esm/lib/agent.d.ts +0 -19
  201. package/dist/esm/lib/agent.js +0 -54
  202. package/dist/esm/lib/application.d.ts +0 -67
  203. package/dist/esm/lib/application.js +0 -259
  204. package/dist/esm/lib/core/base_context_class.d.ts +0 -17
  205. package/dist/esm/lib/core/base_context_class.js +0 -17
  206. package/dist/esm/lib/core/base_context_logger.d.ts +0 -36
  207. package/dist/esm/lib/core/base_context_logger.js +0 -60
  208. package/dist/esm/lib/core/base_hook_class.d.ts +0 -11
  209. package/dist/esm/lib/core/base_hook_class.js +0 -22
  210. package/dist/esm/lib/core/context_httpclient.d.ts +0 -16
  211. package/dist/esm/lib/core/context_httpclient.js +0 -26
  212. package/dist/esm/lib/core/httpclient.d.ts +0 -14
  213. package/dist/esm/lib/core/httpclient.js +0 -38
  214. package/dist/esm/lib/core/logger.d.ts +0 -3
  215. package/dist/esm/lib/core/logger.js +0 -37
  216. package/dist/esm/lib/core/messenger/IMessenger.d.ts +0 -50
  217. package/dist/esm/lib/core/messenger/IMessenger.js +0 -2
  218. package/dist/esm/lib/core/messenger/base.d.ts +0 -8
  219. package/dist/esm/lib/core/messenger/base.js +0 -27
  220. package/dist/esm/lib/core/messenger/index.d.ts +0 -7
  221. package/dist/esm/lib/core/messenger/index.js +0 -12
  222. package/dist/esm/lib/core/messenger/ipc.d.ts +0 -58
  223. package/dist/esm/lib/core/messenger/ipc.js +0 -128
  224. package/dist/esm/lib/core/messenger/local.d.ts +0 -60
  225. package/dist/esm/lib/core/messenger/local.js +0 -128
  226. package/dist/esm/lib/core/utils.d.ts +0 -2
  227. package/dist/esm/lib/core/utils.js +0 -70
  228. package/dist/esm/lib/egg.d.ts +0 -305
  229. package/dist/esm/lib/egg.js +0 -586
  230. package/dist/esm/lib/error/CookieLimitExceedError.d.ts +0 -5
  231. package/dist/esm/lib/error/CookieLimitExceedError.js +0 -12
  232. package/dist/esm/lib/error/MessageUnhandledRejectionError.d.ts +0 -5
  233. package/dist/esm/lib/error/MessageUnhandledRejectionError.js +0 -12
  234. package/dist/esm/lib/error/index.d.ts +0 -2
  235. package/dist/esm/lib/error/index.js +0 -3
  236. package/dist/esm/lib/loader/AgentWorkerLoader.d.ts +0 -12
  237. package/dist/esm/lib/loader/AgentWorkerLoader.js +0 -20
  238. package/dist/esm/lib/loader/AppWorkerLoader.d.ts +0 -17
  239. package/dist/esm/lib/loader/AppWorkerLoader.js +0 -39
  240. package/dist/esm/lib/loader/EggApplicationLoader.d.ts +0 -4
  241. package/dist/esm/lib/loader/EggApplicationLoader.js +0 -4
  242. package/dist/esm/lib/loader/index.d.ts +0 -3
  243. package/dist/esm/lib/loader/index.js +0 -4
  244. package/dist/esm/lib/start.d.ts +0 -24
  245. package/dist/esm/lib/start.js +0 -43
  246. package/dist/esm/lib/types.d.ts +0 -257
  247. package/dist/esm/lib/types.js +0 -14
  248. package/dist/esm/lib/utils.d.ts +0 -2
  249. package/dist/esm/lib/utils.js +0 -14
  250. package/dist/esm/package.json +0 -3
  251. package/dist/esm/urllib.d.ts +0 -1
  252. package/dist/esm/urllib.js +0 -2
  253. package/dist/package.json +0 -4
  254. package/src/agent.ts +0 -7
  255. package/src/app/extend/context.ts +0 -332
  256. package/src/app/extend/request.ts +0 -300
  257. package/src/app/middleware/body_parser.ts +0 -3
  258. package/src/app/middleware/meta.ts +0 -27
  259. package/src/app/middleware/notfound.ts +0 -41
  260. package/src/app/middleware/override_method.ts +0 -3
  261. package/src/app/middleware/site_file.ts +0 -68
  262. package/src/config/config.default.ts +0 -404
  263. package/src/config/config.local.ts +0 -11
  264. package/src/config/config.unittest.ts +0 -10
  265. package/src/config/favicon.png +0 -0
  266. package/src/index.ts +0 -120
  267. package/src/lib/agent.ts +0 -66
  268. package/src/lib/application.ts +0 -308
  269. package/src/lib/core/base_context_class.ts +0 -24
  270. package/src/lib/core/base_context_logger.ts +0 -67
  271. package/src/lib/core/base_hook_class.ts +0 -30
  272. package/src/lib/core/context_httpclient.ts +0 -33
  273. package/src/lib/core/httpclient.ts +0 -64
  274. package/src/lib/core/logger.ts +0 -42
  275. package/src/lib/core/messenger/base.ts +0 -30
  276. package/src/lib/core/messenger/index.ts +0 -16
  277. package/src/lib/core/messenger/ipc.ts +0 -146
  278. package/src/lib/core/messenger/local.ts +0 -147
  279. package/src/lib/core/utils.ts +0 -77
  280. package/src/lib/egg.ts +0 -705
  281. package/src/lib/error/CookieLimitExceedError.ts +0 -12
  282. package/src/lib/error/MessageUnhandledRejectionError.ts +0 -12
  283. package/src/lib/error/index.ts +0 -2
  284. package/src/lib/loader/AgentWorkerLoader.ts +0 -21
  285. package/src/lib/loader/AppWorkerLoader.ts +0 -42
  286. package/src/lib/loader/EggApplicationLoader.ts +0 -5
  287. package/src/lib/loader/index.ts +0 -3
  288. package/src/lib/start.ts +0 -66
  289. package/src/lib/utils.ts +0 -15
  290. package/src/urllib.ts +0 -1
  291. /package/dist/{commonjs/config → config}/favicon.png +0 -0
@@ -0,0 +1,260 @@
1
+ import { defineConfig } from "../lib/types.js";
2
+ import "../index.js";
3
+ import path from "node:path";
4
+ import { pathToFileURL } from "node:url";
5
+
6
+ //#region src/config/config.default.ts
7
+ /**
8
+ * The configuration of egg application, can be access by `app.config`
9
+ * @class Config
10
+ * @since 1.0.0
11
+ */
12
+ var config_default_default = defineConfig((appInfo) => {
13
+ const config = {
14
+ env: appInfo.env,
15
+ name: appInfo.name,
16
+ keys: "",
17
+ cookies: {},
18
+ proxy: false,
19
+ maxIpsCount: 0,
20
+ maxProxyCount: 0,
21
+ protocolHeaders: "x-forwarded-proto",
22
+ ipHeaders: "x-forwarded-for",
23
+ hostHeaders: "",
24
+ pkg: appInfo.pkg,
25
+ baseDir: appInfo.baseDir,
26
+ HOME: appInfo.HOME,
27
+ rundir: path.join(appInfo.baseDir, "run"),
28
+ dump: {
29
+ ignore: new Set([
30
+ "pass",
31
+ "pwd",
32
+ "passd",
33
+ "passwd",
34
+ "password",
35
+ "keys",
36
+ "masterKey",
37
+ "accessKey",
38
+ /secret/i
39
+ ]),
40
+ timing: { slowBootActionMinDuration: 5e3 }
41
+ },
42
+ confusedConfigurations: {
43
+ bodyparser: "bodyParser",
44
+ notFound: "notfound",
45
+ sitefile: "siteFile",
46
+ middlewares: "middleware",
47
+ httpClient: "httpclient"
48
+ }
49
+ };
50
+ /**
51
+ * The options of `notfound` middleware
52
+ *
53
+ * It will return page or json depend on negotiation when 404,
54
+ * If pageUrl is set, it will redirect to the page.
55
+ *
56
+ * @member Config#notfound
57
+ * @property {String} pageUrl - the 404 page url
58
+ */
59
+ config.notfound = {
60
+ enable: true,
61
+ pageUrl: ""
62
+ };
63
+ /**
64
+ * The option of `siteFile` middleware
65
+ *
66
+ * You can map some files using this options, it will response immediately when matching.
67
+ *
68
+ * @member {Object} Config#siteFile - key is path, and value is url or buffer.
69
+ * @property {String} cacheControl - files cache control, default is `public, max-age=2592000`
70
+ * @example
71
+ * ```ts
72
+ * // specific app's favicon, => '/favicon.ico': 'https://eggjs.org/favicon.png',
73
+ * config.siteFile = {
74
+ * '/favicon.ico': 'https://eggjs.org/favicon.png',
75
+ * };
76
+ * ```
77
+ */
78
+ config.siteFile = {
79
+ enable: true,
80
+ "/favicon.ico": pathToFileURL(path.join(import.meta.dirname, "favicon.png")),
81
+ cacheControl: "public, max-age=2592000"
82
+ };
83
+ /**
84
+ * The options of `bodyParser` middleware
85
+ *
86
+ * @member Config#bodyParser
87
+ * @property {Boolean} enable - enable bodyParser or not, default is true
88
+ * @property {String | RegExp | Function | Array} ignore - won't parse request body when url path hit ignore pattern, can not set `ignore` when `match` presented
89
+ * @property {String | RegExp | Function | Array} match - will parse request body only when url path hit match pattern
90
+ * @property {String} encoding - body's encoding type,default is utf8
91
+ * @property {String} formLimit - limit of the urlencoded body. If the body ends up being larger than this limit, a 413 error code is returned. Default is 1mb
92
+ * @property {String} jsonLimit - limit of the json body, default is 1mb
93
+ * @property {String} textLimit - limit of the text body, default is 1mb
94
+ * @property {Boolean} strict - when set to true, JSON parser will only accept arrays and objects. Default is true
95
+ * @property {Number} queryString.arrayLimit - urlencoded body array's max length, default is 100
96
+ * @property {Number} queryString.depth - urlencoded body object's max depth, default is 5
97
+ * @property {Number} queryString.parameterLimit - urlencoded body maximum parameters, default is 1000
98
+ */
99
+ config.bodyParser = {
100
+ enable: true,
101
+ encoding: "utf8",
102
+ formLimit: "1mb",
103
+ jsonLimit: "1mb",
104
+ textLimit: "1mb",
105
+ strict: true,
106
+ queryString: {
107
+ arrayLimit: 100,
108
+ depth: 5,
109
+ parameterLimit: 1e3
110
+ },
111
+ onProtoPoisoning: "error",
112
+ onerror(err, ctx) {
113
+ err.message = `${err.message}, check bodyParser config`;
114
+ if (ctx.status === 404) {
115
+ ctx.status = 400;
116
+ if (!err.status) err.status = 400;
117
+ }
118
+ throw err;
119
+ }
120
+ };
121
+ /**
122
+ * logger options
123
+ * @member Config#logger
124
+ * @property {String} dir - directory of log files
125
+ * @property {String} encoding - log file encoding, defaults to utf8
126
+ * @property {String} level - default log level, could be: DEBUG, INFO, WARN, ERROR or NONE, defaults to INFO in production
127
+ * @property {String} consoleLevel - log level of stdout, defaults to INFO in local serverEnv, defaults to WARN in unittest, defaults to NONE elsewise
128
+ * @property {Boolean} disableConsoleAfterReady - disable logger console after app ready. defaults to `false` on local and unittest env, others is `true`.
129
+ * @property {Boolean} outputJSON - log as JSON or not, defaults to false
130
+ * @property {Boolean} buffer - if enabled, flush logs to disk at a certain frequency to improve performance, defaults to true
131
+ * @property {String} errorLogName - file name of errorLogger
132
+ * @property {String} coreLogName - file name of coreLogger
133
+ * @property {String} agentLogName - file name of agent worker log
134
+ * @property {Object} coreLogger - custom config of coreLogger
135
+ * @property {Boolean} allowDebugAtProd - allow debug log at prod, defaults to false
136
+ * @property {Boolean} enableFastContextLogger - using the app logger instead of EggContextLogger, defaults to true
137
+ */
138
+ config.logger = {
139
+ dir: path.join(appInfo.root, "logs", appInfo.name),
140
+ encoding: "utf8",
141
+ env: appInfo.env,
142
+ level: "INFO",
143
+ consoleLevel: "INFO",
144
+ disableConsoleAfterReady: appInfo.env !== "local" && appInfo.env !== "unittest",
145
+ outputJSON: false,
146
+ buffer: true,
147
+ appLogName: `${appInfo.name}-web.log`,
148
+ coreLogName: "egg-web.log",
149
+ agentLogName: "egg-agent.log",
150
+ errorLogName: "common-error.log",
151
+ coreLogger: {},
152
+ allowDebugAtProd: false,
153
+ enableFastContextLogger: true
154
+ };
155
+ /**
156
+ * The option for httpclient
157
+ * @member Config#httpclient
158
+ * @property {Boolean} enableDNSCache - Enable DNS lookup from local cache or not, default is false.
159
+ * @property {Boolean} dnsCacheLookupInterval - minimum interval of DNS query on the same hostname (default 10s).
160
+ *
161
+ * @property {Number} request.timeout - httpclient request default timeout, default is 5000 ms.
162
+ *
163
+ * @property {Boolean} httpAgent.keepAlive - Enable http agent keepalive or not, default is true
164
+ * @property {Number} httpAgent.freeSocketTimeout - http agent socket keepalive max free time, default is 4000 ms.
165
+ * @property {Number} httpAgent.maxSockets - http agent max socket number of one host, default is `Number.MAX_SAFE_INTEGER` @ses https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
166
+ * @property {Number} httpAgent.maxFreeSockets - http agent max free socket number of one host, default is 256.
167
+ *
168
+ * @property {Boolean} httpsAgent.keepAlive - Enable https agent keepalive or not, default is true
169
+ * @property {Number} httpsAgent.freeSocketTimeout - https agent socket keepalive max free time, default is 4000 ms.
170
+ * @property {Number} httpsAgent.maxSockets - https agent max socket number of one host, default is `Number.MAX_SAFE_INTEGER` @ses https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
171
+ * @property {Number} httpsAgent.maxFreeSockets - https agent max free socket number of one host, default is 256.
172
+ * @property {Boolean} useHttpClientNext - use urllib@3 HttpClient
173
+ */
174
+ config.httpclient = { request: { timeout: 5e3 } };
175
+ /**
176
+ * The options of `meta` middleware
177
+ *
178
+ * @member Config#meta
179
+ * @property {Boolean} enable - enable meta or not, default is `true`
180
+ * @property {Boolean} logging - enable logging start request, default is `false`
181
+ */
182
+ config.meta = {
183
+ enable: true,
184
+ logging: false
185
+ };
186
+ /**
187
+ * core enable middlewares
188
+ * @member {Array} Config#middleware
189
+ */
190
+ config.coreMiddleware = [
191
+ "meta",
192
+ "siteFile",
193
+ "notfound",
194
+ "bodyParser",
195
+ "overrideMethod"
196
+ ];
197
+ /**
198
+ * emit `startTimeout` if worker don't ready after `workerStartTimeout` ms
199
+ * @member {Number} Config.workerStartTimeout
200
+ */
201
+ config.workerStartTimeout = 600 * 1e3;
202
+ /**
203
+ * server timeout in milliseconds, default to 0 (no timeout).
204
+ *
205
+ * for special request, just use `ctx.req.setTimeout(ms)`
206
+ *
207
+ * @member {Number} Config#serverTimeout
208
+ * @see https://nodejs.org/api/http.html#http_server_timeout
209
+ */
210
+ config.serverTimeout = null;
211
+ /**
212
+ * The options of cluster
213
+ * @member {Object} Config#cluster
214
+ * @property {Object} listen - listen options, see {@link https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback}
215
+ * @property {String} listen.path - set a unix sock path when server listen
216
+ * @property {Number} listen.port - set a port when server listen
217
+ * @property {String} listen.hostname - set a hostname binding server when server listen
218
+ */
219
+ config.cluster = { listen: {
220
+ path: "",
221
+ port: 7001,
222
+ hostname: ""
223
+ } };
224
+ /**
225
+ * @property {Number} responseTimeout - response timeout, default is 60000
226
+ */
227
+ config.clusterClient = {
228
+ maxWaitTime: 6e4,
229
+ responseTimeout: 6e4
230
+ };
231
+ /**
232
+ * This function / async function will be called when a client error occurred and return the response.
233
+ *
234
+ * The arguments are `err`, `socket` and `application` which indicate current client error object, current socket
235
+ * object and the application object.
236
+ *
237
+ * The response to be returned should include properties below:
238
+ *
239
+ * @member {Function} Config#onClientError
240
+ * @property [body] {String|Buffer} - the response body
241
+ * @property [status] {Number} - the response status code
242
+ * @property [headers] {Object} - the response header key-value pairs
243
+ *
244
+ * @example
245
+ * exports.onClientError = async (err, socket, app) => {
246
+ * return {
247
+ * body: 'error',
248
+ * status: 400,
249
+ * headers: {
250
+ * 'powered-by': 'Egg.js',
251
+ * }
252
+ * };
253
+ * }
254
+ */
255
+ config.onClientError = void 0;
256
+ return config;
257
+ });
258
+
259
+ //#endregion
260
+ export { config_default_default as default };
@@ -0,0 +1,10 @@
1
+ //#region src/config/config.local.d.ts
2
+ declare const _default: () => {
3
+ logger: {
4
+ coreLogger: {
5
+ consoleLevel: "WARN";
6
+ };
7
+ };
8
+ };
9
+ //#endregion
10
+ export { _default as default };
@@ -0,0 +1,7 @@
1
+ //#region src/config/config.local.ts
2
+ var config_local_default = () => {
3
+ return { logger: { coreLogger: { consoleLevel: "WARN" } } };
4
+ };
5
+
6
+ //#endregion
7
+ export { config_local_default as default };
@@ -0,0 +1,9 @@
1
+ //#region src/config/config.unittest.d.ts
2
+ declare const _default: () => {
3
+ logger: {
4
+ consoleLevel: "WARN";
5
+ buffer: false;
6
+ };
7
+ };
8
+ //#endregion
9
+ export { _default as default };
@@ -0,0 +1,10 @@
1
+ //#region src/config/config.unittest.ts
2
+ var config_unittest_default = () => {
3
+ return { logger: {
4
+ consoleLevel: "WARN",
5
+ buffer: false
6
+ } };
7
+ };
8
+
9
+ //#endregion
10
+ export { config_unittest_default as default };
@@ -1,14 +1,14 @@
1
- export default {
1
+ //#region src/config/plugin.d.ts
2
+ declare const _default: {
2
3
  /**
3
4
  * app global Error Handling
4
5
  * @member {Object} Plugin#onerror
5
6
  * @property {Boolean} enable - `true` by default
6
7
  */
7
8
  onerror: {
8
- enable: true,
9
- package: '@eggjs/onerror',
10
- },
11
-
9
+ enable: boolean;
10
+ package: string;
11
+ };
12
12
  /**
13
13
  * session
14
14
  * @member {Object} Plugin#session
@@ -16,10 +16,9 @@ export default {
16
16
  * @since 1.0.0
17
17
  */
18
18
  session: {
19
- enable: true,
20
- package: '@eggjs/session',
21
- },
22
-
19
+ enable: boolean;
20
+ package: string;
21
+ };
23
22
  /**
24
23
  * i18n
25
24
  * @member {Object} Plugin#i18n
@@ -27,10 +26,9 @@ export default {
27
26
  * @since 1.0.0
28
27
  */
29
28
  i18n: {
30
- enable: true,
31
- package: '@eggjs/i18n',
32
- },
33
-
29
+ enable: boolean;
30
+ package: string;
31
+ };
34
32
  /**
35
33
  * file and dir watcher
36
34
  * @member {Object} Plugin#watcher
@@ -38,10 +36,9 @@ export default {
38
36
  * @since 1.0.0
39
37
  */
40
38
  watcher: {
41
- enable: true,
42
- package: '@eggjs/watcher',
43
- },
44
-
39
+ enable: boolean;
40
+ package: string;
41
+ };
45
42
  /**
46
43
  * multipart
47
44
  * @member {Object} Plugin#multipart
@@ -49,10 +46,9 @@ export default {
49
46
  * @since 1.0.0
50
47
  */
51
48
  multipart: {
52
- enable: true,
53
- package: '@eggjs/multipart',
54
- },
55
-
49
+ enable: boolean;
50
+ package: string;
51
+ };
56
52
  /**
57
53
  * security middlewares and extends
58
54
  * @member {Object} Plugin#security
@@ -60,21 +56,19 @@ export default {
60
56
  * @since 1.0.0
61
57
  */
62
58
  security: {
63
- enable: true,
64
- package: '@eggjs/security',
65
- },
66
-
59
+ enable: boolean;
60
+ package: string;
61
+ };
67
62
  /**
68
63
  * local development helper
69
64
  * @member {Object} Plugin#development
70
- * @property {Boolean} enable - `true` by default
65
+ * @property {Boolean} enable - `true` by default. on CI, it's `false` to avoid unexpected errors.
71
66
  * @since 1.0.0
72
67
  */
73
68
  development: {
74
- enable: true,
75
- package: '@eggjs/development',
76
- },
77
-
69
+ enable: boolean;
70
+ package: string;
71
+ };
78
72
  /**
79
73
  * logger file rotator
80
74
  * @member {Object} Plugin#logrotator
@@ -82,10 +76,9 @@ export default {
82
76
  * @since 1.0.0
83
77
  */
84
78
  logrotator: {
85
- enable: true,
86
- package: '@eggjs/logrotator',
87
- },
88
-
79
+ enable: boolean;
80
+ package: string;
81
+ };
89
82
  /**
90
83
  * schedule tasks
91
84
  * @member {Object} Plugin#schedule
@@ -93,10 +86,9 @@ export default {
93
86
  * @since 2.7.0
94
87
  */
95
88
  schedule: {
96
- enable: true,
97
- package: '@eggjs/schedule',
98
- },
99
-
89
+ enable: boolean;
90
+ package: string;
91
+ };
100
92
  /**
101
93
  * `app/public` dir static serve
102
94
  * @member {Object} Plugin#static
@@ -104,10 +96,9 @@ export default {
104
96
  * @since 1.0.0
105
97
  */
106
98
  static: {
107
- enable: true,
108
- package: '@eggjs/static',
109
- },
110
-
99
+ enable: boolean;
100
+ package: string;
101
+ };
111
102
  /**
112
103
  * jsonp support for egg
113
104
  * @member {Function} Plugin#jsonp
@@ -115,10 +106,9 @@ export default {
115
106
  * @since 1.0.0
116
107
  */
117
108
  jsonp: {
118
- enable: true,
119
- package: '@eggjs/jsonp',
120
- },
121
-
109
+ enable: boolean;
110
+ package: string;
111
+ };
122
112
  /**
123
113
  * view plugin
124
114
  * @member {Function} Plugin#view
@@ -126,7 +116,9 @@ export default {
126
116
  * @since 1.0.0
127
117
  */
128
118
  view: {
129
- enable: true,
130
- package: '@eggjs/view',
131
- },
119
+ enable: boolean;
120
+ package: string;
121
+ };
132
122
  };
123
+ //#endregion
124
+ export { _default as default };
@@ -0,0 +1,54 @@
1
+ //#region src/config/plugin.ts
2
+ var plugin_default = {
3
+ onerror: {
4
+ enable: true,
5
+ package: "@eggjs/onerror"
6
+ },
7
+ session: {
8
+ enable: true,
9
+ package: "@eggjs/session"
10
+ },
11
+ i18n: {
12
+ enable: true,
13
+ package: "@eggjs/i18n"
14
+ },
15
+ watcher: {
16
+ enable: true,
17
+ package: "@eggjs/watcher"
18
+ },
19
+ multipart: {
20
+ enable: true,
21
+ package: "@eggjs/multipart"
22
+ },
23
+ security: {
24
+ enable: true,
25
+ package: "@eggjs/security"
26
+ },
27
+ development: {
28
+ enable: process.env.CI ? false : true,
29
+ package: "@eggjs/development"
30
+ },
31
+ logrotator: {
32
+ enable: true,
33
+ package: "@eggjs/logrotator"
34
+ },
35
+ schedule: {
36
+ enable: true,
37
+ package: "@eggjs/schedule"
38
+ },
39
+ static: {
40
+ enable: true,
41
+ package: "@eggjs/static"
42
+ },
43
+ jsonp: {
44
+ enable: true,
45
+ package: "@eggjs/jsonp"
46
+ },
47
+ view: {
48
+ enable: true,
49
+ package: "@eggjs/view"
50
+ }
51
+ };
52
+
53
+ //#endregion
54
+ export { plugin_default as default };
@@ -0,0 +1,19 @@
1
+ import { AppWorkerLoader } from "./lib/loader/AppWorkerLoader.js";
2
+ import { AgentWorkerLoader } from "./lib/loader/AgentWorkerLoader.js";
3
+ import { Agent } from "./lib/agent.js";
4
+ import Helper from "./app/extend/helper.js";
5
+ import { Application } from "./lib/application.js";
6
+ import { EggContextHttpClient as HttpClient, HttpClientOptions, HttpClientRequestOptions, HttpClientRequestURL, HttpClientResponse } from "./lib/core/httpclient.js";
7
+ import Context from "./app/extend/context.js";
8
+ import { ClientErrorResponse, CustomLoaderConfig, EggAppConfig, EggAppInfo, EggConfigFactory, EggEnvType, EggLoggerConfig, EggPlugin, EggPluginItem, HttpClientConfig, IEggPluginItem, PartialDeep, PartialEggConfig, PowerPartial, RequestObjectBody, defineConfig } from "./lib/types.js";
9
+ import { ContextHttpClient } from "./lib/core/context_httpclient.js";
10
+ import { EggApplicationCore, EggApplicationCoreOptions, EggContext, IBoot as ILifecycleBoot, MiddlewareFunc, Next, Request, Response, Router } from "./lib/egg.js";
11
+ import { BaseContextClass } from "./lib/core/base_context_class.js";
12
+ import { SingleModeAgent, SingleModeApplication, StartEggOptions, startEgg } from "./lib/start.js";
13
+ import { CookieLimitExceedError } from "./lib/error/CookieLimitExceedError.js";
14
+ import { MessageUnhandledRejectionError } from "./lib/error/MessageUnhandledRejectionError.js";
15
+ import { BaseHookClass } from "./lib/core/base_hook_class.js";
16
+ import { Singleton, SingletonCreateMethod, SingletonOptions } from "@eggjs/core";
17
+ import { EggLogger, LoggerLevel } from "egg-logger";
18
+ export * from "@eggjs/cluster";
19
+ export { Agent, AgentWorkerLoader, AppWorkerLoader, Application, BaseContextClass, BaseHookClass as Boot, ClientErrorResponse, Context, ContextHttpClient, BaseContextClass as Controller, BaseContextClass as Service, BaseContextClass as Subscription, CookieLimitExceedError, CustomLoaderConfig, EggAppConfig, EggAppInfo, EggApplicationCore, EggApplicationCoreOptions, EggConfigFactory, EggContext, HttpClient as EggContextHttpClient, HttpClient as EggHttpClient, HttpClient, EggEnvType, type EggLogger, EggLoggerConfig, EggPlugin, EggPluginItem, Helper, type Helper as IHelper, HttpClientConfig, HttpClientOptions, HttpClientRequestOptions, HttpClientRequestURL, HttpClientResponse, ILifecycleBoot as IBoot, ILifecycleBoot, IEggPluginItem, type LoggerLevel, MessageUnhandledRejectionError, MiddlewareFunc, Next, PartialDeep, PartialEggConfig, PowerPartial, Request, RequestObjectBody, Response, Router, type SingleModeAgent, type SingleModeApplication, Singleton, type SingletonCreateMethod, type SingletonOptions, StartEggOptions, defineConfig, startEgg as start, startEgg };
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ import { BaseHookClass } from "./lib/core/base_hook_class.js";
2
+ import { BaseContextClass } from "./lib/core/base_context_class.js";
3
+ import Context from "./app/extend/context.js";
4
+ import { CookieLimitExceedError } from "./lib/error/CookieLimitExceedError.js";
5
+ import { MessageUnhandledRejectionError } from "./lib/error/MessageUnhandledRejectionError.js";
6
+ import { ContextHttpClient } from "./lib/core/context_httpclient.js";
7
+ import { HttpClient } from "./lib/core/httpclient.js";
8
+ import { EggApplicationCore, Request, Response, Router } from "./lib/egg.js";
9
+ import { AppWorkerLoader } from "./lib/loader/AppWorkerLoader.js";
10
+ import { AgentWorkerLoader } from "./lib/loader/AgentWorkerLoader.js";
11
+ import "./lib/loader/index.js";
12
+ import { Agent } from "./lib/agent.js";
13
+ import Helper from "./app/extend/helper.js";
14
+ import { Application } from "./lib/application.js";
15
+ import { defineConfig } from "./lib/types.js";
16
+ import { startEgg } from "./lib/start.js";
17
+ import { Singleton } from "@eggjs/core";
18
+
19
+ export * from "@eggjs/cluster"
20
+
21
+ export { Agent, AgentWorkerLoader, AppWorkerLoader, Application, BaseContextClass, BaseHookClass as Boot, Context, ContextHttpClient, BaseContextClass as Controller, BaseContextClass as Service, BaseContextClass as Subscription, CookieLimitExceedError, EggApplicationCore, Helper, HttpClient, MessageUnhandledRejectionError, Request, Response, Router, Singleton, defineConfig, startEgg as start, startEgg };
@@ -0,0 +1,22 @@
1
+ import { AgentWorkerLoader } from "./loader/AgentWorkerLoader.js";
2
+ import { EggApplicationCore, EggApplicationCoreOptions } from "./egg.js";
3
+
4
+ //#region src/lib/agent.d.ts
5
+ declare const EGG_LOADER: unique symbol;
6
+ /**
7
+ * Singleton instance in Agent Worker, extend {@link EggApplicationCore}
8
+ * @augments EggApplicationCore
9
+ */
10
+ declare class Agent extends EggApplicationCore {
11
+ #private;
12
+ /**
13
+ * @class
14
+ * @param {Object} options - see {@link EggApplicationCore}
15
+ */
16
+ constructor(options?: Omit<EggApplicationCoreOptions, 'type'>);
17
+ get [EGG_LOADER](): typeof AgentWorkerLoader;
18
+ _wrapMessenger(): void;
19
+ close(): Promise<void>;
20
+ }
21
+ //#endregion
22
+ export { Agent };
@@ -0,0 +1,56 @@
1
+ import { EggApplicationCore } from "./egg.js";
2
+ import { AgentWorkerLoader } from "./loader/AgentWorkerLoader.js";
3
+ import "./loader/index.js";
4
+
5
+ //#region src/lib/agent.ts
6
+ const EGG_LOADER = Symbol.for("egg#loader");
7
+ /**
8
+ * Singleton instance in Agent Worker, extend {@link EggApplicationCore}
9
+ * @augments EggApplicationCore
10
+ */
11
+ var Agent = class extends EggApplicationCore {
12
+ #agentAliveHandler;
13
+ /**
14
+ * @class
15
+ * @param {Object} options - see {@link EggApplicationCore}
16
+ */
17
+ constructor(options) {
18
+ super({
19
+ ...options,
20
+ type: "agent"
21
+ });
22
+ this.#agentAliveHandler = setInterval(() => {
23
+ this.coreLogger.info("[]");
24
+ }, 1440 * 60 * 1e3);
25
+ }
26
+ get [EGG_LOADER]() {
27
+ return AgentWorkerLoader;
28
+ }
29
+ _wrapMessenger() {
30
+ for (const methodName of [
31
+ "broadcast",
32
+ "sendTo",
33
+ "sendToApp",
34
+ "sendToAgent",
35
+ "sendRandom"
36
+ ]) wrapMethod(methodName, this.messenger, this.coreLogger);
37
+ function wrapMethod(methodName, messenger, logger) {
38
+ const originMethod = messenger[methodName];
39
+ messenger[methodName] = function(...args) {
40
+ const stack = (/* @__PURE__ */ new Error()).stack.split("\n").slice(1).join("\n");
41
+ logger.warn("agent can't call %s before server started\n%s", methodName, stack);
42
+ originMethod.apply(this, args);
43
+ };
44
+ messenger.prependOnceListener("egg-ready", () => {
45
+ messenger[methodName] = originMethod;
46
+ });
47
+ }
48
+ }
49
+ async close() {
50
+ clearInterval(this.#agentAliveHandler);
51
+ await super.close();
52
+ }
53
+ };
54
+
55
+ //#endregion
56
+ export { Agent };