egg 3.29.0 → 4.0.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 (232) hide show
  1. package/README.md +2 -1
  2. package/README.zh-CN.md +7 -5
  3. package/dist/commonjs/agent.d.ts +4 -0
  4. package/dist/commonjs/agent.js +10 -0
  5. package/dist/commonjs/app/extend/context.d.ts +154 -0
  6. package/dist/commonjs/app/extend/context.js +261 -0
  7. package/dist/commonjs/app/extend/context.types.d.ts +16 -0
  8. package/dist/commonjs/app/extend/context.types.js +3 -0
  9. package/dist/commonjs/app/extend/helper.d.ts +37 -0
  10. package/dist/commonjs/app/extend/helper.js +49 -0
  11. package/dist/commonjs/app/extend/request.d.ts +128 -0
  12. package/dist/commonjs/app/extend/request.js +270 -0
  13. package/dist/commonjs/app/extend/response.d.ts +25 -0
  14. package/dist/commonjs/app/extend/response.js +37 -0
  15. package/dist/commonjs/app/middleware/body_parser.d.ts +2 -0
  16. package/dist/commonjs/app/middleware/body_parser.js +8 -0
  17. package/dist/commonjs/app/middleware/meta.d.ts +10 -0
  18. package/dist/commonjs/app/middleware/meta.js +22 -0
  19. package/dist/commonjs/app/middleware/notfound.d.ts +7 -0
  20. package/dist/commonjs/app/middleware/notfound.js +31 -0
  21. package/dist/commonjs/app/middleware/override_method.d.ts +2 -0
  22. package/dist/commonjs/app/middleware/override_method.js +8 -0
  23. package/dist/commonjs/app/middleware/site_file.d.ts +9 -0
  24. package/dist/commonjs/app/middleware/site_file.js +58 -0
  25. package/dist/commonjs/config/config.default.d.ts +9 -0
  26. package/dist/commonjs/config/config.default.js +379 -0
  27. package/dist/commonjs/config/config.local.d.ts +8 -0
  28. package/dist/commonjs/config/config.local.js +12 -0
  29. package/dist/commonjs/config/config.unittest.d.ts +7 -0
  30. package/dist/commonjs/config/config.unittest.js +11 -0
  31. package/dist/commonjs/config/plugin.d.ts +122 -0
  32. package/dist/commonjs/config/plugin.js +125 -0
  33. package/dist/commonjs/index.d.ts +63 -0
  34. package/dist/commonjs/index.js +91 -0
  35. package/dist/commonjs/lib/agent.d.ts +19 -0
  36. package/dist/commonjs/lib/agent.js +58 -0
  37. package/dist/commonjs/lib/application.d.ts +59 -0
  38. package/dist/commonjs/lib/application.js +270 -0
  39. package/dist/commonjs/lib/core/base_context_class.d.ts +14 -0
  40. package/dist/commonjs/lib/core/base_context_class.js +22 -0
  41. package/dist/commonjs/lib/core/base_context_logger.d.ts +36 -0
  42. package/dist/commonjs/lib/core/base_context_logger.js +64 -0
  43. package/dist/commonjs/lib/core/base_hook_class.d.ts +11 -0
  44. package/dist/commonjs/lib/core/base_hook_class.js +30 -0
  45. package/dist/commonjs/lib/core/context_httpclient.d.ts +16 -0
  46. package/dist/commonjs/lib/core/context_httpclient.js +30 -0
  47. package/dist/commonjs/lib/core/httpclient.d.ts +13 -0
  48. package/dist/commonjs/lib/core/httpclient.js +37 -0
  49. package/dist/commonjs/lib/core/logger.d.ts +3 -0
  50. package/dist/commonjs/lib/core/logger.js +40 -0
  51. package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +50 -0
  52. package/dist/commonjs/lib/core/messenger/IMessenger.js +3 -0
  53. package/dist/commonjs/lib/core/messenger/index.d.ts +7 -0
  54. package/dist/commonjs/lib/core/messenger/index.js +14 -0
  55. package/dist/commonjs/lib/core/messenger/ipc.d.ts +59 -0
  56. package/dist/commonjs/lib/core/messenger/ipc.js +137 -0
  57. package/dist/commonjs/lib/core/messenger/local.d.ts +61 -0
  58. package/dist/commonjs/lib/core/messenger/local.js +137 -0
  59. package/dist/commonjs/lib/core/singleton.d.ts +23 -0
  60. package/dist/commonjs/lib/core/singleton.js +120 -0
  61. package/dist/commonjs/lib/core/utils.d.ts +2 -0
  62. package/dist/commonjs/lib/core/utils.js +77 -0
  63. package/dist/commonjs/lib/egg.d.ts +276 -0
  64. package/dist/commonjs/lib/egg.js +617 -0
  65. package/dist/commonjs/lib/egg.types.d.ts +6 -0
  66. package/dist/commonjs/lib/egg.types.js +3 -0
  67. package/dist/commonjs/lib/loader/AgentWorkerLoader.d.ts +12 -0
  68. package/dist/commonjs/lib/loader/AgentWorkerLoader.js +24 -0
  69. package/dist/commonjs/lib/loader/AppWorkerLoader.d.ts +17 -0
  70. package/dist/commonjs/lib/loader/AppWorkerLoader.js +43 -0
  71. package/dist/commonjs/lib/loader/EggApplicationLoader.d.ts +4 -0
  72. package/dist/commonjs/lib/loader/EggApplicationLoader.js +8 -0
  73. package/dist/commonjs/lib/loader/index.d.ts +3 -0
  74. package/dist/commonjs/lib/loader/index.js +22 -0
  75. package/dist/commonjs/lib/start.d.ts +15 -0
  76. package/dist/commonjs/lib/start.js +49 -0
  77. package/dist/commonjs/lib/type.d.ts +293 -0
  78. package/dist/commonjs/lib/type.js +3 -0
  79. package/dist/commonjs/lib/utils.d.ts +2 -0
  80. package/dist/commonjs/lib/utils.js +21 -0
  81. package/dist/commonjs/package.json +3 -0
  82. package/dist/esm/agent.d.ts +4 -0
  83. package/dist/esm/agent.js +7 -0
  84. package/dist/esm/app/extend/context.d.ts +154 -0
  85. package/dist/esm/app/extend/context.js +255 -0
  86. package/dist/esm/app/extend/context.types.d.ts +16 -0
  87. package/dist/esm/app/extend/context.types.js +2 -0
  88. package/dist/esm/app/extend/helper.d.ts +37 -0
  89. package/dist/esm/app/extend/helper.js +43 -0
  90. package/dist/esm/app/extend/request.d.ts +128 -0
  91. package/dist/esm/app/extend/request.js +264 -0
  92. package/dist/esm/app/extend/response.d.ts +25 -0
  93. package/dist/esm/app/extend/response.js +34 -0
  94. package/dist/esm/app/middleware/body_parser.d.ts +2 -0
  95. package/dist/esm/app/middleware/body_parser.js +3 -0
  96. package/dist/esm/app/middleware/meta.d.ts +10 -0
  97. package/dist/esm/app/middleware/meta.js +20 -0
  98. package/dist/esm/app/middleware/notfound.d.ts +7 -0
  99. package/dist/esm/app/middleware/notfound.js +29 -0
  100. package/dist/esm/app/middleware/override_method.d.ts +2 -0
  101. package/dist/esm/app/middleware/override_method.js +3 -0
  102. package/dist/esm/app/middleware/site_file.d.ts +9 -0
  103. package/dist/esm/app/middleware/site_file.js +53 -0
  104. package/dist/esm/config/config.default.d.ts +9 -0
  105. package/dist/esm/config/config.default.js +374 -0
  106. package/dist/esm/config/config.local.d.ts +8 -0
  107. package/dist/esm/config/config.local.js +10 -0
  108. package/dist/esm/config/config.unittest.d.ts +7 -0
  109. package/dist/esm/config/config.unittest.js +9 -0
  110. package/dist/esm/config/favicon.png +0 -0
  111. package/dist/esm/config/plugin.d.ts +122 -0
  112. package/dist/esm/config/plugin.js +123 -0
  113. package/dist/esm/index.d.ts +63 -0
  114. package/dist/esm/index.js +66 -0
  115. package/dist/esm/lib/agent.d.ts +19 -0
  116. package/dist/esm/lib/agent.js +54 -0
  117. package/dist/esm/lib/application.d.ts +59 -0
  118. package/dist/esm/lib/application.js +263 -0
  119. package/dist/esm/lib/core/base_context_class.d.ts +14 -0
  120. package/dist/esm/lib/core/base_context_class.js +18 -0
  121. package/dist/esm/lib/core/base_context_logger.d.ts +36 -0
  122. package/dist/esm/lib/core/base_context_logger.js +60 -0
  123. package/dist/esm/lib/core/base_hook_class.d.ts +11 -0
  124. package/dist/esm/lib/core/base_hook_class.js +23 -0
  125. package/dist/esm/lib/core/context_httpclient.d.ts +16 -0
  126. package/dist/esm/lib/core/context_httpclient.js +26 -0
  127. package/dist/esm/lib/core/httpclient.d.ts +13 -0
  128. package/dist/esm/lib/core/httpclient.js +33 -0
  129. package/dist/esm/lib/core/logger.d.ts +3 -0
  130. package/dist/esm/lib/core/logger.js +37 -0
  131. package/dist/esm/lib/core/messenger/IMessenger.d.ts +50 -0
  132. package/dist/esm/lib/core/messenger/IMessenger.js +2 -0
  133. package/dist/esm/lib/core/messenger/index.d.ts +7 -0
  134. package/dist/esm/lib/core/messenger/index.js +11 -0
  135. package/dist/esm/lib/core/messenger/ipc.d.ts +59 -0
  136. package/dist/esm/lib/core/messenger/ipc.js +130 -0
  137. package/dist/esm/lib/core/messenger/local.d.ts +61 -0
  138. package/dist/esm/lib/core/messenger/local.js +130 -0
  139. package/dist/esm/lib/core/singleton.d.ts +23 -0
  140. package/dist/esm/lib/core/singleton.js +113 -0
  141. package/dist/esm/lib/core/utils.d.ts +2 -0
  142. package/dist/esm/lib/core/utils.js +70 -0
  143. package/dist/esm/lib/egg.d.ts +276 -0
  144. package/dist/esm/lib/egg.js +574 -0
  145. package/dist/esm/lib/egg.types.d.ts +6 -0
  146. package/dist/esm/lib/egg.types.js +2 -0
  147. package/dist/esm/lib/loader/AgentWorkerLoader.d.ts +12 -0
  148. package/dist/esm/lib/loader/AgentWorkerLoader.js +20 -0
  149. package/dist/esm/lib/loader/AppWorkerLoader.d.ts +17 -0
  150. package/dist/esm/lib/loader/AppWorkerLoader.js +39 -0
  151. package/dist/esm/lib/loader/EggApplicationLoader.d.ts +4 -0
  152. package/dist/esm/lib/loader/EggApplicationLoader.js +4 -0
  153. package/dist/esm/lib/loader/index.d.ts +3 -0
  154. package/dist/esm/lib/loader/index.js +4 -0
  155. package/dist/esm/lib/start.d.ts +15 -0
  156. package/dist/esm/lib/start.js +43 -0
  157. package/dist/esm/lib/type.d.ts +293 -0
  158. package/dist/esm/lib/type.js +2 -0
  159. package/dist/esm/lib/utils.d.ts +2 -0
  160. package/dist/esm/lib/utils.js +14 -0
  161. package/dist/esm/package.json +3 -0
  162. package/dist/package.json +4 -0
  163. package/package.json +97 -79
  164. package/src/agent.ts +7 -0
  165. package/src/app/extend/context.ts +303 -0
  166. package/src/app/extend/context.types.ts +24 -0
  167. package/{app/extend/helper.js → src/app/extend/helper.ts} +14 -13
  168. package/{app/extend/request.js → src/app/extend/request.ts} +81 -79
  169. package/src/app/extend/response.ts +36 -0
  170. package/src/app/middleware/body_parser.ts +3 -0
  171. package/{app/middleware/meta.js → src/app/middleware/meta.ts} +11 -4
  172. package/{app/middleware/notfound.js → src/app/middleware/notfound.ts} +8 -3
  173. package/src/app/middleware/override_method.ts +3 -0
  174. package/src/app/middleware/site_file.ts +68 -0
  175. package/{config/config.default.js → src/config/config.default.ts} +25 -45
  176. package/src/config/config.local.ts +11 -0
  177. package/src/config/config.unittest.ts +10 -0
  178. package/src/config/favicon.png +0 -0
  179. package/{config/plugin.js → src/config/plugin.ts} +3 -5
  180. package/src/index.ts +80 -0
  181. package/src/lib/agent.ts +66 -0
  182. package/{lib/application.js → src/lib/application.ts} +76 -124
  183. package/src/lib/core/base_context_class.ts +21 -0
  184. package/src/lib/core/base_context_logger.ts +67 -0
  185. package/src/lib/core/base_hook_class.ts +30 -0
  186. package/src/lib/core/context_httpclient.ts +33 -0
  187. package/src/lib/core/httpclient.ts +51 -0
  188. package/src/lib/core/logger.ts +42 -0
  189. package/src/lib/core/messenger/IMessenger.ts +58 -0
  190. package/src/lib/core/messenger/index.ts +15 -0
  191. package/src/lib/core/messenger/ipc.ts +148 -0
  192. package/{lib/core/messenger/local.js → src/lib/core/messenger/local.ts} +36 -28
  193. package/{lib/core/singleton.js → src/lib/core/singleton.ts} +56 -33
  194. package/src/lib/core/utils.ts +77 -0
  195. package/{lib/egg.js → src/lib/egg.ts} +287 -221
  196. package/src/lib/egg.types.ts +6 -0
  197. package/src/lib/loader/AgentWorkerLoader.ts +21 -0
  198. package/src/lib/loader/AppWorkerLoader.ts +42 -0
  199. package/src/lib/loader/EggApplicationLoader.ts +5 -0
  200. package/src/lib/loader/index.ts +3 -0
  201. package/src/lib/start.ts +56 -0
  202. package/src/lib/type.ts +329 -0
  203. package/src/lib/utils.ts +16 -0
  204. package/CHANGELOG.md +0 -2395
  205. package/History.md +0 -52
  206. package/agent.js +0 -11
  207. package/app/extend/context.js +0 -285
  208. package/app/extend/response.js +0 -101
  209. package/app/middleware/body_parser.js +0 -3
  210. package/app/middleware/override_method.js +0 -3
  211. package/app/middleware/site_file.js +0 -31
  212. package/config/config.local.js +0 -7
  213. package/config/config.unittest.js +0 -8
  214. package/index.d.ts +0 -1288
  215. package/index.js +0 -68
  216. package/lib/agent.js +0 -95
  217. package/lib/core/base_context_class.js +0 -20
  218. package/lib/core/base_context_logger.js +0 -64
  219. package/lib/core/base_hook_class.js +0 -31
  220. package/lib/core/context_httpclient.js +0 -26
  221. package/lib/core/dnscache_httpclient.js +0 -93
  222. package/lib/core/httpclient.js +0 -119
  223. package/lib/core/httpclient_next.js +0 -80
  224. package/lib/core/logger.js +0 -35
  225. package/lib/core/messenger/index.js +0 -14
  226. package/lib/core/messenger/ipc.js +0 -141
  227. package/lib/core/utils.js +0 -73
  228. package/lib/loader/agent_worker_loader.js +0 -27
  229. package/lib/loader/app_worker_loader.js +0 -48
  230. package/lib/loader/index.js +0 -5
  231. package/lib/start.js +0 -39
  232. /package/{config → dist/commonjs/config}/favicon.png +0 -0
@@ -0,0 +1,39 @@
1
+ import { EggApplicationLoader } from './EggApplicationLoader.js';
2
+ /**
3
+ * App worker process Loader, will load plugins
4
+ * @see https://github.com/eggjs/egg-core/blob/master/src/loader/egg_loader.ts
5
+ */
6
+ export class AppWorkerLoader extends EggApplicationLoader {
7
+ /**
8
+ * loadPlugin first, then loadConfig
9
+ * @since 1.0.0
10
+ */
11
+ async loadConfig() {
12
+ await this.loadPlugin();
13
+ await super.loadConfig();
14
+ }
15
+ /**
16
+ * Load all directories in convention
17
+ * @since 1.0.0
18
+ */
19
+ async load() {
20
+ // app > plugin > core
21
+ await this.loadApplicationExtend();
22
+ await this.loadRequestExtend();
23
+ await this.loadResponseExtend();
24
+ await this.loadContextExtend();
25
+ await this.loadHelperExtend();
26
+ await this.loadCustomLoader();
27
+ // app > plugin
28
+ await this.loadCustomApp();
29
+ // app > plugin
30
+ await this.loadService();
31
+ // app > plugin > core
32
+ await this.loadMiddleware();
33
+ // app
34
+ await this.loadController();
35
+ // app
36
+ await this.loadRouter(); // Depend on controllers
37
+ }
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwV29ya2VyTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9sb2FkZXIvQXBwV29ya2VyTG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLG9CQUFvQjtJQUN2RDs7O09BR0c7SUFDSCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsSUFBSTtRQUNSLHNCQUFzQjtRQUN0QixNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFOUIsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUU5QixlQUFlO1FBQ2YsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsZUFBZTtRQUNmLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLHNCQUFzQjtRQUN0QixNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QixNQUFNO1FBQ04sTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUIsTUFBTTtRQUNOLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsd0JBQXdCO0lBQ25ELENBQUM7Q0FDRiJ9
@@ -0,0 +1,4 @@
1
+ import { EggLoader } from '@eggjs/core';
2
+ export declare abstract class EggApplicationLoader extends EggLoader {
3
+ abstract load(): Promise<void>;
4
+ }
@@ -0,0 +1,4 @@
1
+ import { EggLoader } from '@eggjs/core';
2
+ export class EggApplicationLoader extends EggLoader {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQXBwbGljYXRpb25Mb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2xvYWRlci9FZ2dBcHBsaWNhdGlvbkxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE1BQU0sT0FBZ0Isb0JBQXFCLFNBQVEsU0FBUztDQUUzRCJ9
@@ -0,0 +1,3 @@
1
+ export { EggApplicationLoader } from './EggApplicationLoader.js';
2
+ export * from './AppWorkerLoader.js';
3
+ export * from './AgentWorkerLoader.js';
@@ -0,0 +1,4 @@
1
+ export { EggApplicationLoader } from './EggApplicationLoader.js';
2
+ export * from './AppWorkerLoader.js';
3
+ export * from './AgentWorkerLoader.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2xvYWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUMifQ==
@@ -0,0 +1,15 @@
1
+ import { Application } from './application.js';
2
+ export interface StartEggOptions {
3
+ /** specify framework that can be absolute path or npm package */
4
+ framework?: string;
5
+ /** directory of application, default to `process.cwd()` */
6
+ baseDir?: string;
7
+ /** ignore single process mode warning */
8
+ ignoreWarning?: boolean;
9
+ mode?: 'single';
10
+ env?: string;
11
+ }
12
+ /**
13
+ * Start egg with single process
14
+ */
15
+ export declare function startEgg(options?: StartEggOptions): Promise<Application>;
@@ -0,0 +1,43 @@
1
+ import path from 'node:path';
2
+ import { readJSON } from 'utility';
3
+ import { importModule } from '@eggjs/utils';
4
+ import { Agent } from './agent.js';
5
+ import { Application } from './application.js';
6
+ /**
7
+ * Start egg with single process
8
+ */
9
+ export async function startEgg(options = {}) {
10
+ options.baseDir = options.baseDir ?? process.cwd();
11
+ options.mode = 'single';
12
+ // get agent from options.framework and package.egg.framework
13
+ if (!options.framework) {
14
+ try {
15
+ const pkg = await readJSON(path.join(options.baseDir, 'package.json'));
16
+ options.framework = pkg.egg.framework;
17
+ }
18
+ catch (_) {
19
+ // ignore
20
+ }
21
+ }
22
+ let AgentClass = Agent;
23
+ let ApplicationClass = Application;
24
+ if (options.framework) {
25
+ const framework = await importModule(options.framework, { paths: [options.baseDir] });
26
+ AgentClass = framework.Agent;
27
+ ApplicationClass = framework.Application;
28
+ }
29
+ const agent = new AgentClass({
30
+ ...options,
31
+ });
32
+ await agent.ready();
33
+ const application = new ApplicationClass({
34
+ ...options,
35
+ });
36
+ application.agent = agent;
37
+ agent.application = application;
38
+ await application.ready();
39
+ // emit egg-ready message in agent and application
40
+ application.messenger.broadcast('egg-ready');
41
+ return application;
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFhL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBQyxVQUEyQixFQUFFO0lBQzFELE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbkQsT0FBTyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7SUFFeEIsNkRBQTZEO0lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDdkUsT0FBTyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUN4QyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLFNBQVM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztJQUN2QixJQUFJLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztJQUNuQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QixNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBRSxFQUFFLENBQUMsQ0FBQztRQUN4RixVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUM3QixnQkFBZ0IsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUMzQixHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7SUFDSCxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1FBQ3ZDLEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztJQUNILFdBQVcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQzFCLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2hDLE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTFCLGtEQUFrRDtJQUNsRCxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDIn0=
@@ -0,0 +1,293 @@
1
+ import type { Socket } from 'node:net';
2
+ import type { RequestOptions as HttpClientRequestOptions } from 'urllib';
3
+ import type { EggLoggerOptions, EggLoggersOptions } from 'egg-logger';
4
+ import type { FileLoaderOptions } from '@eggjs/core';
5
+ import type { EggApplicationCore, ContextDelegation } from './egg.js';
6
+ import type { MetaMiddlewareOptions } from '../app/middleware/meta.js';
7
+ import type { NotFoundMiddlewareOptions } from '../app/middleware/notfound.js';
8
+ import type { SiteFileMiddlewareOptions } from '../app/middleware/site_file.js';
9
+ type IgnoreItem = string | RegExp | ((ctx: ContextDelegation) => boolean);
10
+ type IgnoreOrMatch = IgnoreItem | IgnoreItem[];
11
+ export interface ClientErrorResponse {
12
+ body: string | Buffer;
13
+ status: number;
14
+ headers: {
15
+ [key: string]: string;
16
+ };
17
+ }
18
+ /** egg env type */
19
+ export type EggEnvType = 'local' | 'unittest' | 'prod' | string;
20
+ /** logger config of egg */
21
+ export interface EggLoggerConfig extends Omit<EggLoggersOptions, 'type'> {
22
+ /** custom config of coreLogger */
23
+ coreLogger?: Partial<EggLoggerOptions>;
24
+ /** allow debug log at prod, defaults to `false` */
25
+ allowDebugAtProd?: boolean;
26
+ /** disable logger console after app ready. defaults to `false` on local and unittest env, others is `true`. */
27
+ disableConsoleAfterReady?: boolean;
28
+ /** [deprecated] Defaults to `true`. */
29
+ enablePerformanceTimer?: boolean;
30
+ /** using the app logger instead of EggContextLogger, defaults to `false` */
31
+ enableFastContextLogger?: boolean;
32
+ }
33
+ /** Custom Loader Configuration */
34
+ export interface CustomLoaderConfig extends Omit<FileLoaderOptions, 'inject' | 'target'> {
35
+ /**
36
+ * an object you wanner load to, value can only be 'ctx' or 'app'. default to app
37
+ */
38
+ inject?: 'ctx' | 'app';
39
+ /**
40
+ * whether need to load files in plugins or framework, default to false
41
+ */
42
+ loadunit?: boolean;
43
+ }
44
+ export interface EggAppConfig {
45
+ workerStartTimeout: number;
46
+ baseDir: string;
47
+ middleware: string[];
48
+ coreMiddleware: string[];
49
+ /**
50
+ * The option of `bodyParser` middleware
51
+ *
52
+ * @member Config#bodyParser
53
+ * @property {Boolean} enable - enable bodyParser or not, default to true
54
+ * @property {String | RegExp | Function | Array} ignore - won't parse request body when url path hit ignore pattern, can not set `ignore` when `match` presented
55
+ * @property {String | RegExp | Function | Array} match - will parse request body only when url path hit match pattern
56
+ * @property {String} encoding - body encoding config, default utf8
57
+ * @property {String} formLimit - form body size limit, default 1mb
58
+ * @property {String} jsonLimit - json body size limit, default 1mb
59
+ * @property {String} textLimit - json body size limit, default 1mb
60
+ * @property {Boolean} strict - json body strict mode, if set strict value true, then only receive object and array json body
61
+ * @property {Number} queryString.arrayLimit - from item array length limit, default 100
62
+ * @property {Number} queryString.depth - json value deep length, default 5
63
+ * @property {Number} queryString.parameterLimit - parameter number limit, default 1000
64
+ * @property {String[]} enableTypes - parser will only parse when request type hits enableTypes, default is ['json', 'form']
65
+ * @property {Object} extendTypes - support extend types
66
+ * @property {String} onProtoPoisoning - Defines what action must take when parsing a JSON object with `__proto__`. Possible values are `'error'`, `'remove'` and `'ignore'`. Default is `'error'`, it will return `400` response when `Prototype-Poisoning` happen.
67
+ */
68
+ bodyParser: {
69
+ enable: boolean;
70
+ encoding: string;
71
+ formLimit: string;
72
+ jsonLimit: string;
73
+ textLimit: string;
74
+ strict: boolean;
75
+ queryString: {
76
+ arrayLimit: number;
77
+ depth: number;
78
+ parameterLimit: number;
79
+ };
80
+ ignore?: IgnoreOrMatch;
81
+ match?: IgnoreOrMatch;
82
+ enableTypes?: string[];
83
+ extendTypes?: {
84
+ json: string[];
85
+ form: string[];
86
+ text: string[];
87
+ };
88
+ /** Default is `'error'`, it will return `400` response when `Prototype-Poisoning` happen. */
89
+ onProtoPoisoning: 'error' | 'remove' | 'ignore';
90
+ onerror(err: any, ctx: ContextDelegation): void;
91
+ };
92
+ /**
93
+ * logger options
94
+ * @member Config#logger
95
+ * @property {String} dir - directory of log files
96
+ * @property {String} encoding - log file encoding, defaults to utf8
97
+ * @property {String} level - default log level, could be: DEBUG, INFO, WARN, ERROR or NONE, defaults to INFO in production
98
+ * @property {String} consoleLevel - log level of stdout, defaults to `INFO` in local serverEnv, defaults to `WARN` in unittest, others is `NONE`
99
+ * @property {Boolean} disableConsoleAfterReady - disable logger console after app ready. defaults to `false` on local and unittest env, others is `true`.
100
+ * @property {Boolean} outputJSON - log as JSON or not, defaults to `false`
101
+ * @property {Boolean} buffer - if enabled, flush logs to disk at a certain frequency to improve performance, defaults to true
102
+ * @property {String} errorLogName - file name of errorLogger
103
+ * @property {String} coreLogName - file name of coreLogger
104
+ * @property {String} agentLogName - file name of agent worker log
105
+ * @property {Object} coreLogger - custom config of coreLogger
106
+ * @property {Boolean} allowDebugAtProd - allow debug log at prod, defaults to false
107
+ * @property {Boolean} enableFastContextLogger - using the app logger instead of EggContextLogger, defaults to false
108
+ */
109
+ logger: Partial<EggLoggerConfig>;
110
+ /** custom logger of egg */
111
+ customLogger: {
112
+ [key: string]: EggLoggerOptions;
113
+ };
114
+ /** Configuration of httpclient in egg. */
115
+ httpclient: {
116
+ /** Request timeout */
117
+ timeout?: number;
118
+ /** Default request args for httpclient */
119
+ request?: HttpClientRequestOptions;
120
+ };
121
+ development: {
122
+ /**
123
+ * dirs needed watch, when files under these change, application will reload, use relative path
124
+ */
125
+ watchDirs: string[];
126
+ /**
127
+ * dirs don't need watch, including subdirectories, use relative path
128
+ */
129
+ ignoreDirs: string[];
130
+ /**
131
+ * don't wait all plugins ready, default is true.
132
+ */
133
+ fastReady: boolean;
134
+ /**
135
+ * whether reload on debug, default is true.
136
+ */
137
+ reloadOnDebug: boolean;
138
+ /**
139
+ * whether override default watchDirs, default is false.
140
+ */
141
+ overrideDefault: boolean;
142
+ /**
143
+ * whether override default ignoreDirs, default is false.
144
+ */
145
+ overrideIgnore: boolean;
146
+ /**
147
+ * whether to reload, use https://github.com/sindresorhus/multimatch
148
+ */
149
+ reloadPattern: string[] | string;
150
+ };
151
+ /**
152
+ * customLoader config
153
+ */
154
+ customLoader: {
155
+ [key: string]: CustomLoaderConfig;
156
+ };
157
+ /**
158
+ * It will ignore special keys when dumpConfig
159
+ */
160
+ dump: {
161
+ ignore: Set<string | RegExp>;
162
+ timing: {
163
+ slowBootActionMinDuration: number;
164
+ };
165
+ };
166
+ /**
167
+ * The environment of egg
168
+ */
169
+ env: EggEnvType;
170
+ /**
171
+ * The current HOME directory
172
+ */
173
+ HOME: string;
174
+ hostHeaders: string;
175
+ /**
176
+ * I18n options
177
+ */
178
+ i18n: {
179
+ /**
180
+ * default value EN_US
181
+ */
182
+ defaultLocale: string;
183
+ /**
184
+ * i18n resource file dir, not recommend to change default value
185
+ */
186
+ dirs: string[];
187
+ /**
188
+ * custom the locale value field, default `query.locale`, you can modify this config, such as `query.lang`
189
+ */
190
+ queryField: string;
191
+ /**
192
+ * The locale value key in the cookie, default is locale.
193
+ */
194
+ cookieField: string;
195
+ /**
196
+ * Locale cookie expire time, default `1y`, If pass number value, the unit will be ms
197
+ */
198
+ cookieMaxAge: string | number;
199
+ };
200
+ /**
201
+ * Detect request' ip from specified headers, not case-sensitive. Only worked when config.proxy set to true.
202
+ */
203
+ ipHeaders: string;
204
+ protocolHeaders: string;
205
+ maxProxyCount: number;
206
+ maxIpsCount: number;
207
+ proxy: boolean;
208
+ cookies: {
209
+ sameSite?: string;
210
+ httpOnly?: boolean;
211
+ };
212
+ /**
213
+ * jsonp options
214
+ * @member Config#jsonp
215
+ * @property {String} callback - jsonp callback method key, default to `_callback`
216
+ * @property {Number} limit - callback method name's max length, default to `50`
217
+ * @property {Boolean} csrf - enable csrf check or not. default to false
218
+ * @property {String|RegExp|Array} whiteList - referrer white list
219
+ */
220
+ jsonp: {
221
+ limit: number;
222
+ callback: string;
223
+ csrf: boolean;
224
+ whiteList: string | RegExp | Array<string | RegExp>;
225
+ };
226
+ /**
227
+ * The key that signing cookies. It can contain multiple keys separated by .
228
+ */
229
+ keys: string;
230
+ /**
231
+ * The name of the application
232
+ */
233
+ name: string;
234
+ /**
235
+ * package.json
236
+ */
237
+ pkg: Record<string, any>;
238
+ rundir: string;
239
+ security: {
240
+ domainWhiteList: string[];
241
+ protocolWhiteList: string[];
242
+ defaultMiddleware: string;
243
+ csrf: any;
244
+ ssrf: {
245
+ ipBlackList: string[];
246
+ ipExceptionList: string[];
247
+ checkAddress?(ip: string): boolean;
248
+ };
249
+ xframe: {
250
+ enable: boolean;
251
+ value: 'SAMEORIGIN' | 'DENY' | 'ALLOW-FROM';
252
+ };
253
+ hsts: any;
254
+ methodnoallow: {
255
+ enable: boolean;
256
+ };
257
+ noopen: {
258
+ enable: boolean;
259
+ };
260
+ xssProtection: any;
261
+ csp: any;
262
+ };
263
+ siteFile: SiteFileMiddlewareOptions;
264
+ meta: MetaMiddlewareOptions;
265
+ notfound: NotFoundMiddlewareOptions;
266
+ overrideMethod: {
267
+ enable: boolean;
268
+ allowedMethods: string[];
269
+ };
270
+ watcher: Record<string, any>;
271
+ onClientError?(err: Error, socket: Socket, app: EggApplicationCore): ClientErrorResponse | Promise<ClientErrorResponse>;
272
+ /**
273
+ * server timeout in milliseconds, default to 0 (no timeout).
274
+ *
275
+ * for special request, just use `ctx.req.setTimeout(ms)`
276
+ *
277
+ * @see https://nodejs.org/api/http.html#http_server_timeout
278
+ */
279
+ serverTimeout: number | null;
280
+ cluster: {
281
+ listen: {
282
+ path: string;
283
+ port: number;
284
+ hostname: string;
285
+ };
286
+ };
287
+ clusterClient: {
288
+ maxWaitTime: number;
289
+ responseTimeout: number;
290
+ };
291
+ [prop: string]: any;
292
+ }
293
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,2 @@
1
+ export declare function getSourceDirname(): string;
2
+ export declare function getSourceFile(filename: string): string;
@@ -0,0 +1,14 @@
1
+ import path from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+ export function getSourceDirname() {
4
+ if (typeof __dirname !== 'undefined') {
5
+ return path.dirname(__dirname);
6
+ }
7
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
8
+ // @ts-ignore
9
+ return path.dirname(path.dirname(fileURLToPath(import.meta.url)));
10
+ }
11
+ export function getSourceFile(filename) {
12
+ return path.join(getSourceDirname(), filename);
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxhQUFhO0lBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFFBQWdCO0lBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2pELENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "egg",
3
+ "version": "4.0.0-beta.10"
4
+ }