egg 4.0.10 → 4.1.0-beta.3

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