egg 3.26.1 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +1 -1
  2. package/README.zh-CN.md +6 -5
  3. package/dist/commonjs/agent.d.ts +4 -0
  4. package/dist/commonjs/agent.js +10 -0
  5. package/dist/commonjs/app/middleware/body_parser.d.ts +2 -0
  6. package/dist/commonjs/app/middleware/body_parser.js +8 -0
  7. package/dist/commonjs/app/middleware/meta.d.ts +11 -0
  8. package/dist/commonjs/app/middleware/meta.js +22 -0
  9. package/dist/commonjs/app/middleware/notfound.d.ts +8 -0
  10. package/dist/commonjs/app/middleware/notfound.js +31 -0
  11. package/dist/commonjs/app/middleware/override_method.d.ts +2 -0
  12. package/dist/commonjs/app/middleware/override_method.js +8 -0
  13. package/dist/commonjs/app/middleware/site_file.d.ts +7 -0
  14. package/dist/commonjs/app/middleware/site_file.js +40 -0
  15. package/dist/commonjs/config/config.default.d.ts +9 -0
  16. package/dist/commonjs/config/config.default.js +378 -0
  17. package/dist/commonjs/config/config.local.d.ts +8 -0
  18. package/dist/commonjs/config/config.local.js +12 -0
  19. package/dist/commonjs/config/config.unittest.d.ts +7 -0
  20. package/dist/commonjs/config/config.unittest.js +11 -0
  21. package/dist/commonjs/config/plugin.d.ts +122 -0
  22. package/dist/commonjs/config/plugin.js +125 -0
  23. package/dist/commonjs/index.d.ts +61 -0
  24. package/dist/commonjs/index.js +89 -0
  25. package/dist/commonjs/lib/agent.d.ts +19 -0
  26. package/dist/commonjs/lib/agent.js +58 -0
  27. package/dist/commonjs/lib/application.d.ts +66 -0
  28. package/dist/commonjs/lib/application.js +281 -0
  29. package/dist/commonjs/lib/core/base_context_class.d.ts +14 -0
  30. package/dist/commonjs/lib/core/base_context_class.js +22 -0
  31. package/dist/commonjs/lib/core/base_context_logger.d.ts +36 -0
  32. package/dist/commonjs/lib/core/base_context_logger.js +64 -0
  33. package/dist/commonjs/lib/core/base_hook_class.d.ts +11 -0
  34. package/dist/commonjs/lib/core/base_hook_class.js +30 -0
  35. package/dist/commonjs/lib/core/context_httpclient.d.ts +16 -0
  36. package/dist/commonjs/lib/core/context_httpclient.js +30 -0
  37. package/dist/commonjs/lib/core/httpclient.d.ts +14 -0
  38. package/dist/commonjs/lib/core/httpclient.js +40 -0
  39. package/dist/commonjs/lib/core/logger.d.ts +3 -0
  40. package/dist/commonjs/lib/core/logger.js +40 -0
  41. package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +50 -0
  42. package/dist/commonjs/lib/core/messenger/IMessenger.js +3 -0
  43. package/dist/commonjs/lib/core/messenger/index.d.ts +7 -0
  44. package/dist/commonjs/lib/core/messenger/index.js +14 -0
  45. package/dist/commonjs/lib/core/messenger/ipc.d.ts +57 -0
  46. package/dist/commonjs/lib/core/messenger/ipc.js +126 -0
  47. package/dist/commonjs/lib/core/messenger/local.d.ts +61 -0
  48. package/dist/commonjs/lib/core/messenger/local.js +134 -0
  49. package/dist/commonjs/lib/core/singleton.d.ts +23 -0
  50. package/dist/commonjs/lib/core/singleton.js +120 -0
  51. package/dist/commonjs/lib/core/utils.d.ts +2 -0
  52. package/dist/commonjs/lib/core/utils.js +77 -0
  53. package/dist/commonjs/lib/egg.d.ts +267 -0
  54. package/dist/commonjs/lib/egg.js +595 -0
  55. package/dist/commonjs/lib/loader/AgentWorkerLoader.d.ts +12 -0
  56. package/dist/commonjs/lib/loader/AgentWorkerLoader.js +24 -0
  57. package/dist/commonjs/lib/loader/AppWorkerLoader.d.ts +17 -0
  58. package/dist/commonjs/lib/loader/AppWorkerLoader.js +43 -0
  59. package/dist/commonjs/lib/loader/EggApplicationLoader.d.ts +4 -0
  60. package/dist/commonjs/lib/loader/EggApplicationLoader.js +8 -0
  61. package/dist/commonjs/lib/loader/index.d.ts +3 -0
  62. package/dist/commonjs/lib/loader/index.js +22 -0
  63. package/dist/commonjs/lib/start.d.ts +15 -0
  64. package/dist/commonjs/lib/start.js +49 -0
  65. package/dist/commonjs/lib/type.d.ts +295 -0
  66. package/dist/commonjs/lib/type.js +3 -0
  67. package/dist/commonjs/package.json +3 -0
  68. package/dist/esm/agent.d.ts +4 -0
  69. package/dist/esm/agent.js +7 -0
  70. package/dist/esm/app/middleware/body_parser.d.ts +2 -0
  71. package/dist/esm/app/middleware/body_parser.js +3 -0
  72. package/dist/esm/app/middleware/meta.d.ts +11 -0
  73. package/dist/esm/app/middleware/meta.js +20 -0
  74. package/dist/esm/app/middleware/notfound.d.ts +8 -0
  75. package/dist/esm/app/middleware/notfound.js +29 -0
  76. package/dist/esm/app/middleware/override_method.d.ts +2 -0
  77. package/dist/esm/app/middleware/override_method.js +3 -0
  78. package/dist/esm/app/middleware/site_file.d.ts +7 -0
  79. package/dist/esm/app/middleware/site_file.js +35 -0
  80. package/dist/esm/config/config.default.d.ts +9 -0
  81. package/dist/esm/config/config.default.js +373 -0
  82. package/dist/esm/config/config.local.d.ts +8 -0
  83. package/dist/esm/config/config.local.js +10 -0
  84. package/dist/esm/config/config.unittest.d.ts +7 -0
  85. package/dist/esm/config/config.unittest.js +9 -0
  86. package/dist/esm/config/favicon.png +0 -0
  87. package/dist/esm/config/plugin.d.ts +122 -0
  88. package/dist/esm/config/plugin.js +123 -0
  89. package/dist/esm/index.d.ts +61 -0
  90. package/dist/esm/index.js +65 -0
  91. package/dist/esm/lib/agent.d.ts +19 -0
  92. package/dist/esm/lib/agent.js +54 -0
  93. package/dist/esm/lib/application.d.ts +66 -0
  94. package/dist/esm/lib/application.js +274 -0
  95. package/dist/esm/lib/core/base_context_class.d.ts +14 -0
  96. package/dist/esm/lib/core/base_context_class.js +18 -0
  97. package/dist/esm/lib/core/base_context_logger.d.ts +36 -0
  98. package/dist/esm/lib/core/base_context_logger.js +60 -0
  99. package/dist/esm/lib/core/base_hook_class.d.ts +11 -0
  100. package/dist/esm/lib/core/base_hook_class.js +23 -0
  101. package/dist/esm/lib/core/context_httpclient.d.ts +16 -0
  102. package/dist/esm/lib/core/context_httpclient.js +26 -0
  103. package/dist/esm/lib/core/httpclient.d.ts +14 -0
  104. package/dist/esm/lib/core/httpclient.js +33 -0
  105. package/dist/esm/lib/core/logger.d.ts +3 -0
  106. package/dist/esm/lib/core/logger.js +37 -0
  107. package/dist/esm/lib/core/messenger/IMessenger.d.ts +50 -0
  108. package/dist/esm/lib/core/messenger/IMessenger.js +2 -0
  109. package/dist/esm/lib/core/messenger/index.d.ts +7 -0
  110. package/dist/esm/lib/core/messenger/index.js +11 -0
  111. package/dist/esm/lib/core/messenger/ipc.d.ts +57 -0
  112. package/dist/esm/lib/core/messenger/ipc.js +119 -0
  113. package/dist/esm/lib/core/messenger/local.d.ts +61 -0
  114. package/dist/esm/lib/core/messenger/local.js +127 -0
  115. package/dist/esm/lib/core/singleton.d.ts +23 -0
  116. package/dist/esm/lib/core/singleton.js +113 -0
  117. package/dist/esm/lib/core/utils.d.ts +2 -0
  118. package/dist/esm/lib/core/utils.js +70 -0
  119. package/dist/esm/lib/egg.d.ts +267 -0
  120. package/dist/esm/lib/egg.js +565 -0
  121. package/dist/esm/lib/loader/AgentWorkerLoader.d.ts +12 -0
  122. package/dist/esm/lib/loader/AgentWorkerLoader.js +20 -0
  123. package/dist/esm/lib/loader/AppWorkerLoader.d.ts +17 -0
  124. package/dist/esm/lib/loader/AppWorkerLoader.js +39 -0
  125. package/dist/esm/lib/loader/EggApplicationLoader.d.ts +4 -0
  126. package/dist/esm/lib/loader/EggApplicationLoader.js +4 -0
  127. package/dist/esm/lib/loader/index.d.ts +3 -0
  128. package/dist/esm/lib/loader/index.js +4 -0
  129. package/dist/esm/lib/start.d.ts +15 -0
  130. package/dist/esm/lib/start.js +43 -0
  131. package/dist/esm/lib/type.d.ts +295 -0
  132. package/dist/esm/lib/type.js +2 -0
  133. package/dist/esm/package.json +3 -0
  134. package/dist/package.json +4 -0
  135. package/package.json +83 -70
  136. package/src/agent.ts +7 -0
  137. package/src/app/middleware/body_parser.ts +3 -0
  138. package/{app/middleware/meta.js → src/app/middleware/meta.ts} +12 -4
  139. package/{app/middleware/notfound.js → src/app/middleware/notfound.ts} +9 -3
  140. package/src/app/middleware/override_method.ts +3 -0
  141. package/src/app/middleware/site_file.ts +49 -0
  142. package/{config/config.default.js → src/config/config.default.ts} +21 -42
  143. package/src/config/config.local.ts +11 -0
  144. package/src/config/config.unittest.ts +10 -0
  145. package/src/config/favicon.png +0 -0
  146. package/{config/plugin.js → src/config/plugin.ts} +1 -3
  147. package/src/index.ts +78 -0
  148. package/src/lib/agent.ts +66 -0
  149. package/{lib/application.js → src/lib/application.ts} +79 -120
  150. package/src/lib/core/base_context_class.ts +21 -0
  151. package/src/lib/core/base_context_logger.ts +67 -0
  152. package/src/lib/core/base_hook_class.ts +30 -0
  153. package/src/lib/core/context_httpclient.ts +33 -0
  154. package/src/lib/core/httpclient.ts +52 -0
  155. package/src/lib/core/logger.ts +42 -0
  156. package/src/lib/core/messenger/IMessenger.ts +58 -0
  157. package/src/lib/core/messenger/index.ts +15 -0
  158. package/{lib/core/messenger/ipc.js → src/lib/core/messenger/ipc.ts} +25 -29
  159. package/{lib/core/messenger/local.js → src/lib/core/messenger/local.ts} +27 -21
  160. package/{lib/core/singleton.js → src/lib/core/singleton.ts} +56 -33
  161. package/src/lib/core/utils.ts +77 -0
  162. package/{lib/egg.js → src/lib/egg.ts} +252 -218
  163. package/src/lib/loader/AgentWorkerLoader.ts +21 -0
  164. package/src/lib/loader/AppWorkerLoader.ts +42 -0
  165. package/src/lib/loader/EggApplicationLoader.ts +5 -0
  166. package/src/lib/loader/index.ts +3 -0
  167. package/src/lib/start.ts +56 -0
  168. package/src/lib/type.ts +329 -0
  169. package/agent.js +0 -11
  170. package/app/middleware/body_parser.js +0 -3
  171. package/app/middleware/override_method.js +0 -3
  172. package/app/middleware/site_file.js +0 -31
  173. package/config/config.local.js +0 -7
  174. package/config/config.unittest.js +0 -8
  175. package/index.d.ts +0 -1285
  176. package/index.js +0 -68
  177. package/lib/agent.js +0 -95
  178. package/lib/core/base_context_class.js +0 -20
  179. package/lib/core/base_context_logger.js +0 -64
  180. package/lib/core/base_hook_class.js +0 -31
  181. package/lib/core/context_httpclient.js +0 -26
  182. package/lib/core/dnscache_httpclient.js +0 -93
  183. package/lib/core/httpclient.js +0 -108
  184. package/lib/core/httpclient_next.js +0 -45
  185. package/lib/core/logger.js +0 -35
  186. package/lib/core/messenger/index.js +0 -14
  187. package/lib/core/utils.js +0 -73
  188. package/lib/loader/agent_worker_loader.js +0 -27
  189. package/lib/loader/app_worker_loader.js +0 -48
  190. package/lib/loader/index.js +0 -5
  191. package/lib/start.js +0 -39
  192. /package/{config → dist/commonjs/config}/favicon.png +0 -0
  193. /package/{app → src/app}/extend/context.js +0 -0
  194. /package/{app → src/app}/extend/helper.js +0 -0
  195. /package/{app → src/app}/extend/request.js +0 -0
  196. /package/{app → src/app}/extend/response.js +0 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.convertObject = convertObject;
7
+ exports.safeParseURL = safeParseURL;
8
+ const node_util_1 = __importDefault(require("node:util"));
9
+ const is_type_of_1 = require("is-type-of");
10
+ function convertObject(obj, ignore) {
11
+ if (!Array.isArray(ignore)) {
12
+ ignore = [ignore];
13
+ }
14
+ for (const key of Object.keys(obj)) {
15
+ obj[key] = convertValue(key, obj[key], ignore);
16
+ }
17
+ return obj;
18
+ }
19
+ function convertValue(key, value, ignore) {
20
+ if (value === null || value === undefined) {
21
+ return value;
22
+ }
23
+ let hit = false;
24
+ for (const matchKey of ignore) {
25
+ if (typeof matchKey === 'string' && matchKey === key) {
26
+ hit = true;
27
+ break;
28
+ }
29
+ else if ((0, is_type_of_1.isRegExp)(matchKey) && matchKey.test(key)) {
30
+ hit = true;
31
+ break;
32
+ }
33
+ }
34
+ if (!hit) {
35
+ if ((0, is_type_of_1.isSymbol)(value) || (0, is_type_of_1.isRegExp)(value)) {
36
+ return value.toString();
37
+ }
38
+ if ((0, is_type_of_1.isPrimitive)(value) || Array.isArray(value)) {
39
+ return value;
40
+ }
41
+ }
42
+ // only convert recursively when it's a plain object,
43
+ // o = {}
44
+ if (Object.getPrototypeOf(value) === Object.prototype) {
45
+ return convertObject(value, ignore);
46
+ }
47
+ // support class
48
+ const name = value.name || 'anonymous';
49
+ if ((0, is_type_of_1.isClass)(value)) {
50
+ return `<Class ${name}>`;
51
+ }
52
+ // support generator function
53
+ if ((0, is_type_of_1.isFunction)(value)) {
54
+ if ((0, is_type_of_1.isGeneratorFunction)(value))
55
+ return `<GeneratorFunction ${name}>`;
56
+ if ((0, is_type_of_1.isAsyncFunction)(value))
57
+ return `<AsyncFunction ${name}>`;
58
+ return `<Function ${name}>`;
59
+ }
60
+ const typeName = value.constructor.name;
61
+ if (typeName) {
62
+ if (Buffer.isBuffer(value) || typeof value === 'string') {
63
+ return `<${typeName} len: ${value.length}>`;
64
+ }
65
+ return `<${typeName}>`;
66
+ }
67
+ return node_util_1.default.format(value);
68
+ }
69
+ function safeParseURL(url) {
70
+ try {
71
+ return new URL(url);
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSxzQ0FRQztBQXdERCxvQ0FNQztBQTVFRCwwREFBNkI7QUFDN0IsMkNBR29CO0FBRXBCLFNBQWdCLGFBQWEsQ0FBQyxHQUFRLEVBQUUsTUFBNkM7SUFDbkYsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsQ0FBRSxNQUFNLENBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxHQUFXLEVBQUUsS0FBVSxFQUFFLE1BQTJCO0lBQ3hFLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLEtBQUssTUFBTSxRQUFRLElBQUksTUFBTSxFQUFFLENBQUM7UUFDOUIsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3JELEdBQUcsR0FBRyxJQUFJLENBQUM7WUFDWCxNQUFNO1FBQ1IsQ0FBQzthQUFNLElBQUksSUFBQSxxQkFBUSxFQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBQ1gsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1QsSUFBSSxJQUFBLHFCQUFRLEVBQUMsS0FBSyxDQUFDLElBQUksSUFBQSxxQkFBUSxFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksSUFBQSx3QkFBVyxFQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQscURBQXFEO0lBQ3JELFNBQVM7SUFDVCxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDO0lBQ3ZDLElBQUksSUFBQSxvQkFBTyxFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkIsT0FBTyxVQUFVLElBQUksR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsSUFBSSxJQUFBLHVCQUFVLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUEsZ0NBQW1CLEVBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxzQkFBc0IsSUFBSSxHQUFHLENBQUM7UUFDckUsSUFBSSxJQUFBLDRCQUFlLEVBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxrQkFBa0IsSUFBSSxHQUFHLENBQUM7UUFDN0QsT0FBTyxhQUFhLElBQUksR0FBRyxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUN4QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3hELE9BQU8sSUFBSSxRQUFRLFNBQVMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLElBQUksUUFBUSxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU8sbUJBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMifQ==
@@ -0,0 +1,267 @@
1
+ import { type IncomingMessage, type ServerResponse } from 'node:http';
2
+ import { EggCore, type EggCoreContext, type EggCoreOptions } from '@eggjs/core';
3
+ import { EggContextLogger as ContextLogger, EggLoggers, EggLogger } from 'egg-logger';
4
+ import { Cookies as ContextCookies } from '@eggjs/cookies';
5
+ import type { Agent } from './agent.js';
6
+ import type { Application } from './application.js';
7
+ import type { EggAppConfig } from './type.js';
8
+ import { IMessenger } from './core/messenger/index.js';
9
+ import { ContextHttpClient } from './core/context_httpclient.js';
10
+ import { HttpClient, type HttpClientRequestOptions, type HttpClientRequestURL, type HttpClientResponse } from './core/httpclient.js';
11
+ import { type SingletonCreateMethod } from './core/singleton.js';
12
+ import { BaseContextClass } from './core/base_context_class.js';
13
+ import { BaseHookClass } from './core/base_hook_class.js';
14
+ import type { EggApplicationLoader } from './loader/index.js';
15
+ declare const EGG_PATH: unique symbol;
16
+ export interface EggApplicationCoreOptions extends Omit<EggCoreOptions, 'baseDir'> {
17
+ mode?: 'cluster' | 'single';
18
+ clusterPort?: number;
19
+ baseDir?: string;
20
+ }
21
+ export interface EggContext extends EggCoreContext {
22
+ app: EggApplicationCore;
23
+ /**
24
+ * Request start time
25
+ * @member {Number} Context#starttime
26
+ */
27
+ starttime: number;
28
+ /**
29
+ * Request start timer using `performance.now()`
30
+ * @member {Number} Context#performanceStarttime
31
+ */
32
+ performanceStarttime: number;
33
+ }
34
+ /**
35
+ * Based on koa's Application
36
+ * @see https://github.com/eggjs/egg-core
37
+ * @see https://github.com/eggjs/koa/blob/master/src/application.ts
38
+ * @augments EggCore
39
+ */
40
+ export declare class EggApplicationCore extends EggCore {
41
+ #private;
42
+ ContextCookies: typeof ContextCookies;
43
+ ContextLogger: typeof ContextLogger;
44
+ ContextHttpClient: typeof ContextHttpClient;
45
+ HttpClient: typeof HttpClient;
46
+ /**
47
+ * Retrieve base context class
48
+ * @member {BaseContextClass} BaseContextClass
49
+ * @since 1.0.0
50
+ */
51
+ BaseContextClass: typeof BaseContextClass;
52
+ /**
53
+ * Retrieve base controller
54
+ * @member {Controller} Controller
55
+ * @since 1.0.0
56
+ */
57
+ Controller: typeof BaseContextClass;
58
+ /**
59
+ * Retrieve base service
60
+ * @member {Service} Service
61
+ * @since 1.0.0
62
+ */
63
+ Service: typeof BaseContextClass;
64
+ /**
65
+ * Retrieve base subscription
66
+ * @member {Subscription} Subscription
67
+ * @since 2.12.0
68
+ */
69
+ Subscription: typeof BaseContextClass;
70
+ /**
71
+ * Retrieve base context class
72
+ * @member {BaseHookClass} BaseHookClass
73
+ */
74
+ BaseHookClass: typeof BaseHookClass;
75
+ /**
76
+ * Retrieve base boot
77
+ * @member {Boot}
78
+ */
79
+ Boot: typeof BaseHookClass;
80
+ options: Required<EggApplicationCoreOptions>;
81
+ readonly messenger: IMessenger;
82
+ agent?: Agent;
83
+ application?: Application;
84
+ loader: EggApplicationLoader;
85
+ /**
86
+ * @class
87
+ * @param {Object} options
88
+ * - {Object} [type] - type of instance, Agent and Application both extend koa, type can determine what it is.
89
+ * - {String} [baseDir] - app root dir, default is `process.cwd()`
90
+ * - {Object} [plugins] - custom plugin config, use it in unittest
91
+ * - {String} [mode] - process mode, can be cluster / single, default is `cluster`
92
+ */
93
+ constructor(options?: EggApplicationCoreOptions);
94
+ protected loadConfig(): Promise<void>;
95
+ protected load(): Promise<void>;
96
+ /**
97
+ * Wrap the Client with Leader/Follower Pattern
98
+ *
99
+ * @description almost the same as Agent.cluster API, the only different is that this method create Follower.
100
+ *
101
+ * @see https://github.com/node-modules/cluster-client
102
+ * @param {Function} clientClass - client class function
103
+ * @param {Object} [options]
104
+ * - {Boolean} [autoGenerate] - whether generate delegate rule automatically, default is true
105
+ * - {Function} [formatKey] - a method to transform the subscription info into a string,default is JSON.stringify
106
+ * - {Object} [transcode|JSON.stringify/parse]
107
+ * - {Function} encode - custom serialize method
108
+ * - {Function} decode - custom deserialize method
109
+ * - {Boolean} [isBroadcast] - whether broadcast subscription result to all followers or just one, default is true
110
+ * - {Number} [responseTimeout] - response timeout, default is 3 seconds
111
+ * - {Number} [maxWaitTime|30000] - leader startup max time, default is 30 seconds
112
+ * @return {ClientWrapper} wrapper
113
+ */
114
+ cluster(clientClass: unknown, options: object): any;
115
+ /**
116
+ * print the information when console.log(app)
117
+ * @return {Object} inspected app.
118
+ * @since 1.0.0
119
+ * @example
120
+ * ```js
121
+ * console.log(app);
122
+ * =>
123
+ * {
124
+ * name: 'mock-app',
125
+ * env: 'test',
126
+ * subdomainOffset: 2,
127
+ * config: '<egg config>',
128
+ * controller: '<egg controller>',
129
+ * service: '<egg service>',
130
+ * middlewares: '<egg middlewares>',
131
+ * urllib: '<egg urllib>',
132
+ * loggers: '<egg loggers>'
133
+ * }
134
+ * ```
135
+ */
136
+ inspect(): any;
137
+ toJSON(): any;
138
+ /**
139
+ * http request helper base on {@link httpclient}, it will auto save httpclient log.
140
+ * Keep the same api with `httpclient.request(url, args)`.
141
+ *
142
+ * See https://github.com/node-modules/urllib#api-doc for more details.
143
+ *
144
+ * @param {String} url request url address.
145
+ * @param {Object} options
146
+ * - method {String} - Request method, defaults to GET. Could be GET, POST, DELETE or PUT. Alias 'type'.
147
+ * - data {Object} - Data to be sent. Will be stringify automatically.
148
+ * - dataType {String} - String - Type of response data. Could be `text` or `json`.
149
+ * If it's `text`, the callback data would be a String.
150
+ * If it's `json`, the data of callback would be a parsed JSON Object.
151
+ * Default callback data would be a Buffer.
152
+ * - headers {Object} - Request headers.
153
+ * - timeout {Number} - Request timeout in milliseconds. Defaults to exports.TIMEOUT.
154
+ * Include remote server connecting timeout and response timeout.
155
+ * When timeout happen, will return ConnectionTimeout or ResponseTimeout.
156
+ * - auth {String} - `username:password` used in HTTP Basic Authorization.
157
+ * - followRedirect {Boolean} - follow HTTP 3xx responses as redirects. defaults to false.
158
+ * - gzip {Boolean} - let you get the res object when request connected, default false. alias customResponse
159
+ * - nestedQuerystring {Boolean} - urllib default use querystring to stringify form data which don't
160
+ * support nested object, will use qs instead of querystring to support nested object by set this option to true.
161
+ * - more options see https://github.com/node-modules/urllib
162
+ * @return {Object}
163
+ * - status {Number} - HTTP response status
164
+ * - headers {Object} - HTTP response headers
165
+ * - res {Object} - HTTP response meta
166
+ * - data {Object} - HTTP response body
167
+ *
168
+ * @example
169
+ * ```js
170
+ * const result = await app.curl('http://example.com/foo.json', {
171
+ * method: 'GET',
172
+ * dataType: 'json',
173
+ * });
174
+ * console.log(result.status, result.headers, result.data);
175
+ * ```
176
+ */
177
+ curl<T = any>(url: HttpClientRequestURL, options?: HttpClientRequestOptions): Promise<HttpClientResponse<T>>;
178
+ /**
179
+ * HttpClient instance
180
+ * @see https://github.com/node-modules/urllib
181
+ * @member {HttpClient}
182
+ */
183
+ get httpClient(): HttpClient;
184
+ /**
185
+ * @deprecated please use httpClient instead
186
+ * @alias httpClient
187
+ * @member {HttpClient}
188
+ */
189
+ get httpclient(): HttpClient;
190
+ /**
191
+ * All loggers contain logger, coreLogger and customLogger
192
+ * @member {Object}
193
+ * @since 1.0.0
194
+ */
195
+ get loggers(): EggLoggers;
196
+ /**
197
+ * Get logger by name, it's equal to app.loggers['name'],
198
+ * but you can extend it with your own logical.
199
+ * @param {String} name - logger name
200
+ * @return {Logger} logger
201
+ */
202
+ getLogger(name: string): EggLogger;
203
+ /**
204
+ * application logger, log file is `$HOME/logs/{appname}/{appname}-web`
205
+ * @member {Logger}
206
+ * @since 1.0.0
207
+ */
208
+ get logger(): EggLogger;
209
+ /**
210
+ * core logger for framework and plugins, log file is `$HOME/logs/{appname}/egg-web`
211
+ * @member {Logger}
212
+ * @since 1.0.0
213
+ */
214
+ get coreLogger(): EggLogger;
215
+ _unhandledRejectionHandler(err: any): void;
216
+ /**
217
+ * dump out the config and meta object
218
+ * @private
219
+ */
220
+ dumpConfigToObject(): {
221
+ config: Record<string, any>;
222
+ meta: Record<string, any>;
223
+ };
224
+ /**
225
+ * save app.config to `run/${type}_config.json`
226
+ * @private
227
+ */
228
+ dumpConfig(): void;
229
+ dumpTiming(): void;
230
+ get [EGG_PATH](): string;
231
+ get config(): EggAppConfig;
232
+ /**
233
+ * app.env delegate app.config.env
234
+ * @deprecated
235
+ */
236
+ get env(): string;
237
+ set env(_: string);
238
+ /**
239
+ * app.proxy delegate app.config.proxy
240
+ * @deprecated
241
+ */
242
+ get proxy(): boolean;
243
+ set proxy(_: boolean);
244
+ /**
245
+ * create a singleton instance
246
+ * @param {String} name - unique name for singleton
247
+ * @param {Function|AsyncFunction} create - method will be invoked when singleton instance create
248
+ */
249
+ addSingleton(name: string, create: SingletonCreateMethod): void;
250
+ /**
251
+ * Create an anonymous context, the context isn't request level, so the request is mocked.
252
+ * then you can use context level API like `ctx.service`
253
+ * @member {String} EggApplication#createAnonymousContext
254
+ * @param {Request} [req] - if you want to mock request like querystring, you can pass an object to this function.
255
+ * @return {Context} context
256
+ */
257
+ createAnonymousContext(req?: any): EggCoreContext;
258
+ /**
259
+ * Create egg context
260
+ * @function EggApplication#createContext
261
+ * @param {Req} req - node native Request object
262
+ * @param {Res} res - node native Response object
263
+ * @return {Context} context object
264
+ */
265
+ createContext(req: IncomingMessage, res: ServerResponse): EggContext;
266
+ }
267
+ export {};