egg 4.0.0-beta.5 → 4.0.0-beta.7

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 (98) hide show
  1. package/dist/commonjs/app/extend/context.d.ts +154 -2
  2. package/dist/commonjs/app/extend/context.js +82 -84
  3. package/dist/commonjs/app/extend/context.types.d.ts +16 -0
  4. package/dist/commonjs/app/extend/context.types.js +3 -0
  5. package/dist/commonjs/app/extend/helper.d.ts +37 -0
  6. package/dist/commonjs/app/extend/helper.js +49 -0
  7. package/dist/commonjs/app/extend/request.d.ts +128 -0
  8. package/dist/commonjs/app/extend/request.js +270 -0
  9. package/dist/commonjs/app/extend/response.d.ts +25 -0
  10. package/dist/commonjs/app/extend/response.js +37 -0
  11. package/dist/commonjs/app/middleware/meta.d.ts +2 -3
  12. package/dist/commonjs/app/middleware/meta.js +1 -1
  13. package/dist/commonjs/app/middleware/notfound.d.ts +2 -3
  14. package/dist/commonjs/app/middleware/notfound.js +1 -1
  15. package/dist/commonjs/app/middleware/site_file.d.ts +4 -2
  16. package/dist/commonjs/app/middleware/site_file.js +2 -3
  17. package/dist/commonjs/config/config.default.js +3 -2
  18. package/dist/commonjs/lib/application.d.ts +5 -12
  19. package/dist/commonjs/lib/application.js +9 -20
  20. package/dist/commonjs/lib/core/base_context_class.d.ts +2 -2
  21. package/dist/commonjs/lib/core/context_httpclient.d.ts +3 -3
  22. package/dist/commonjs/lib/core/context_httpclient.js +1 -1
  23. package/dist/commonjs/lib/core/httpclient.d.ts +2 -3
  24. package/dist/commonjs/lib/core/httpclient.js +3 -6
  25. package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +2 -2
  26. package/dist/commonjs/lib/core/messenger/index.js +2 -2
  27. package/dist/commonjs/lib/core/messenger/ipc.d.ts +5 -3
  28. package/dist/commonjs/lib/core/messenger/ipc.js +23 -17
  29. package/dist/commonjs/lib/core/messenger/local.d.ts +2 -2
  30. package/dist/commonjs/lib/core/messenger/local.js +14 -11
  31. package/dist/commonjs/lib/egg.d.ts +20 -15
  32. package/dist/commonjs/lib/egg.js +15 -11
  33. package/dist/commonjs/lib/egg.types.d.ts +6 -0
  34. package/dist/commonjs/lib/egg.types.js +3 -0
  35. package/dist/commonjs/lib/type.d.ts +4 -7
  36. package/dist/commonjs/lib/utils.d.ts +2 -0
  37. package/dist/commonjs/lib/utils.js +21 -0
  38. package/dist/esm/app/extend/context.d.ts +154 -2
  39. package/dist/esm/app/extend/context.js +82 -85
  40. package/dist/esm/app/extend/context.types.d.ts +16 -0
  41. package/dist/esm/app/extend/context.types.js +2 -0
  42. package/dist/esm/app/extend/helper.d.ts +37 -0
  43. package/dist/esm/app/extend/helper.js +43 -0
  44. package/dist/esm/app/extend/request.d.ts +128 -0
  45. package/dist/esm/app/extend/request.js +264 -0
  46. package/dist/esm/app/extend/response.d.ts +25 -0
  47. package/dist/esm/app/extend/response.js +34 -0
  48. package/dist/esm/app/middleware/meta.d.ts +2 -3
  49. package/dist/esm/app/middleware/meta.js +1 -1
  50. package/dist/esm/app/middleware/notfound.d.ts +2 -3
  51. package/dist/esm/app/middleware/notfound.js +1 -1
  52. package/dist/esm/app/middleware/site_file.d.ts +4 -2
  53. package/dist/esm/app/middleware/site_file.js +2 -3
  54. package/dist/esm/config/config.default.js +3 -2
  55. package/dist/esm/lib/application.d.ts +5 -12
  56. package/dist/esm/lib/application.js +9 -20
  57. package/dist/esm/lib/core/base_context_class.d.ts +2 -2
  58. package/dist/esm/lib/core/context_httpclient.d.ts +3 -3
  59. package/dist/esm/lib/core/context_httpclient.js +1 -1
  60. package/dist/esm/lib/core/httpclient.d.ts +2 -3
  61. package/dist/esm/lib/core/httpclient.js +2 -2
  62. package/dist/esm/lib/core/messenger/IMessenger.d.ts +2 -2
  63. package/dist/esm/lib/core/messenger/index.js +2 -2
  64. package/dist/esm/lib/core/messenger/ipc.d.ts +5 -3
  65. package/dist/esm/lib/core/messenger/ipc.js +23 -17
  66. package/dist/esm/lib/core/messenger/local.d.ts +2 -2
  67. package/dist/esm/lib/core/messenger/local.js +14 -11
  68. package/dist/esm/lib/egg.d.ts +20 -15
  69. package/dist/esm/lib/egg.js +13 -12
  70. package/dist/esm/lib/egg.types.d.ts +6 -0
  71. package/dist/esm/lib/egg.types.js +2 -0
  72. package/dist/esm/lib/type.d.ts +4 -7
  73. package/dist/esm/lib/utils.d.ts +2 -0
  74. package/dist/esm/lib/utils.js +14 -0
  75. package/dist/package.json +1 -1
  76. package/package.json +16 -13
  77. package/src/app/extend/context.ts +124 -102
  78. package/src/app/extend/context.types.ts +24 -0
  79. package/src/app/extend/{helper.js → helper.ts} +14 -13
  80. package/src/app/extend/{request.js → request.ts} +81 -79
  81. package/src/app/extend/response.ts +36 -0
  82. package/src/app/middleware/meta.ts +2 -3
  83. package/src/app/middleware/notfound.ts +2 -3
  84. package/src/app/middleware/site_file.ts +4 -6
  85. package/src/config/config.default.ts +2 -1
  86. package/src/lib/application.ts +14 -21
  87. package/src/lib/core/base_context_class.ts +2 -2
  88. package/src/lib/core/context_httpclient.ts +3 -3
  89. package/src/lib/core/httpclient.ts +4 -5
  90. package/src/lib/core/messenger/IMessenger.ts +2 -2
  91. package/src/lib/core/messenger/index.ts +1 -1
  92. package/src/lib/core/messenger/ipc.ts +23 -17
  93. package/src/lib/core/messenger/local.ts +12 -10
  94. package/src/lib/egg.ts +47 -24
  95. package/src/lib/egg.types.ts +6 -0
  96. package/src/lib/type.ts +6 -13
  97. package/src/lib/utils.ts +16 -0
  98. package/src/app/extend/response.js +0 -101
@@ -0,0 +1,128 @@
1
+ import { Request as EggCoreRequest } from '@eggjs/core';
2
+ import type { Application } from '../../lib/application.js';
3
+ import type { ContextDelegation } from './context.js';
4
+ import Response from './response.js';
5
+ export default class Request extends EggCoreRequest {
6
+ app: Application;
7
+ ctx: ContextDelegation;
8
+ response: Response;
9
+ /**
10
+ * Parse the "Host" header field host
11
+ * and support X-Forwarded-Host when a
12
+ * proxy is enabled.
13
+ * @member {String} Request#host
14
+ * @example
15
+ * ip + port
16
+ * ```js
17
+ * this.request.host
18
+ * => '127.0.0.1:7001'
19
+ * ```
20
+ * or domain
21
+ * ```js
22
+ * this.request.host
23
+ * => 'demo.eggjs.org'
24
+ * ```
25
+ */
26
+ get host(): string;
27
+ /**
28
+ * @member {String} Request#protocol
29
+ * @example
30
+ * ```js
31
+ * this.request.protocol
32
+ * => 'https'
33
+ * ```
34
+ */
35
+ get protocol(): string;
36
+ /**
37
+ * Get all pass through ip addresses from the request.
38
+ * Enable only on `app.config.proxy = true`
39
+ *
40
+ * @member {Array} Request#ips
41
+ * @example
42
+ * ```js
43
+ * this.request.ips
44
+ * => ['100.23.1.2', '201.10.10.2']
45
+ * ```
46
+ */
47
+ get ips(): string[];
48
+ /**
49
+ * Get the request remote IPv4 address
50
+ * @member {String} Request#ip
51
+ * @return {String} IPv4 address
52
+ * @example
53
+ * ```js
54
+ * this.request.ip
55
+ * => '127.0.0.1'
56
+ * => '111.10.2.1'
57
+ * ```
58
+ */
59
+ get ip(): string;
60
+ /**
61
+ * Set the request remote IPv4 address
62
+ * @member {String} Request#ip
63
+ * @param {String} ip - IPv4 address
64
+ * @example
65
+ * ```js
66
+ * this.request.ip
67
+ * => '127.0.0.1'
68
+ * => '111.10.2.1'
69
+ * ```
70
+ */
71
+ set ip(ip: string);
72
+ /**
73
+ * detect if response should be json
74
+ * 1. url path ends with `.json`
75
+ * 2. response type is set to json
76
+ * 3. detect by request accept header
77
+ *
78
+ * @member {Boolean} Request#acceptJSON
79
+ * @since 1.0.0
80
+ */
81
+ get acceptJSON(): boolean;
82
+ _customQuery(cacheName: symbol, filter: (value: string | string[]) => string | string[]): Record<string, string | string[]>;
83
+ /**
84
+ * get params pass by querystring, all values are of string type.
85
+ * @member {Object} Request#query
86
+ * @example
87
+ * ```js
88
+ * GET http://127.0.0.1:7001?name=Foo&age=20&age=21
89
+ * this.query
90
+ * => { 'name': 'Foo', 'age': '20' }
91
+ *
92
+ * GET http://127.0.0.1:7001?a=b&a=c&o[foo]=bar&b[]=1&b[]=2&e=val
93
+ * this.query
94
+ * =>
95
+ * {
96
+ * "a": "b",
97
+ * "o[foo]": "bar",
98
+ * "b[]": "1",
99
+ * "e": "val"
100
+ * }
101
+ * ```
102
+ */
103
+ get query(): Record<string, string>;
104
+ /**
105
+ * get params pass by querystring, all value are Array type. {@link Request#query}
106
+ * @member {Array} Request#queries
107
+ * @example
108
+ * ```js
109
+ * GET http://127.0.0.1:7001?a=b&a=c&o[foo]=bar&b[]=1&b[]=2&e=val
110
+ * this.queries
111
+ * =>
112
+ * {
113
+ * "a": ["b", "c"],
114
+ * "o[foo]": ["bar"],
115
+ * "b[]": ["1", "2"],
116
+ * "e": ["val"]
117
+ * }
118
+ * ```
119
+ */
120
+ get queries(): Record<string, string[]>;
121
+ /**
122
+ * Set query-string as an object.
123
+ *
124
+ * @function Request#query
125
+ * @param {Object} obj set querystring and query object for request.
126
+ */
127
+ set query(obj: Record<string, string>);
128
+ }
@@ -0,0 +1,270 @@
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
+ const node_querystring_1 = __importDefault(require("node:querystring"));
7
+ const core_1 = require("@eggjs/core");
8
+ const QUERY_CACHE = Symbol('request query cache');
9
+ const QUERIES_CACHE = Symbol('request queries cache');
10
+ const PROTOCOL = Symbol('request protocol');
11
+ const HOST = Symbol('request host');
12
+ const IPS = Symbol('request ips');
13
+ const RE_ARRAY_KEY = /[^\[\]]+\[\]$/;
14
+ class Request extends core_1.Request {
15
+ /**
16
+ * Parse the "Host" header field host
17
+ * and support X-Forwarded-Host when a
18
+ * proxy is enabled.
19
+ * @member {String} Request#host
20
+ * @example
21
+ * ip + port
22
+ * ```js
23
+ * this.request.host
24
+ * => '127.0.0.1:7001'
25
+ * ```
26
+ * or domain
27
+ * ```js
28
+ * this.request.host
29
+ * => 'demo.eggjs.org'
30
+ * ```
31
+ */
32
+ get host() {
33
+ let host = this[HOST];
34
+ if (host) {
35
+ return host;
36
+ }
37
+ if (this.app.config.proxy) {
38
+ host = getFromHeaders(this, this.app.config.hostHeaders);
39
+ }
40
+ host = host || this.get('host') || '';
41
+ this[HOST] = host = host.split(',')[0].trim();
42
+ return host;
43
+ }
44
+ /**
45
+ * @member {String} Request#protocol
46
+ * @example
47
+ * ```js
48
+ * this.request.protocol
49
+ * => 'https'
50
+ * ```
51
+ */
52
+ get protocol() {
53
+ let protocol = this[PROTOCOL];
54
+ if (protocol) {
55
+ return protocol;
56
+ }
57
+ // detect encrypted socket
58
+ if (this.socket?.encrypted) {
59
+ this[PROTOCOL] = protocol = 'https';
60
+ return protocol;
61
+ }
62
+ // get from headers specified in `app.config.protocolHeaders`
63
+ if (this.app.config.proxy) {
64
+ const proto = getFromHeaders(this, this.app.config.protocolHeaders);
65
+ if (proto) {
66
+ this[PROTOCOL] = protocol = proto.split(/\s*,\s*/)[0];
67
+ return protocol;
68
+ }
69
+ }
70
+ // use protocol specified in `app.config.protocol`
71
+ this[PROTOCOL] = protocol = this.app.config.protocol || 'http';
72
+ return protocol;
73
+ }
74
+ /**
75
+ * Get all pass through ip addresses from the request.
76
+ * Enable only on `app.config.proxy = true`
77
+ *
78
+ * @member {Array} Request#ips
79
+ * @example
80
+ * ```js
81
+ * this.request.ips
82
+ * => ['100.23.1.2', '201.10.10.2']
83
+ * ```
84
+ */
85
+ get ips() {
86
+ let ips = this[IPS];
87
+ if (ips) {
88
+ return ips;
89
+ }
90
+ // return empty array when proxy=false
91
+ if (!this.app.config.proxy) {
92
+ this[IPS] = ips = [];
93
+ return ips;
94
+ }
95
+ const val = getFromHeaders(this, this.app.config.ipHeaders);
96
+ this[IPS] = ips = val ? val.split(/\s*,\s*/) : [];
97
+ let maxIpsCount = this.app.config.maxIpsCount;
98
+ // Compatible with maxProxyCount logic (previous logic is wrong, only for compatibility with legacy logic)
99
+ if (!maxIpsCount && this.app.config.maxProxyCount) {
100
+ maxIpsCount = this.app.config.maxProxyCount + 1;
101
+ }
102
+ if (maxIpsCount > 0) {
103
+ // if maxIpsCount present, only keep `maxIpsCount` ips
104
+ // [ illegalIp, clientRealIp, proxyIp1, proxyIp2 ...]
105
+ this[IPS] = ips = ips.slice(-maxIpsCount);
106
+ }
107
+ return ips;
108
+ }
109
+ /**
110
+ * Get the request remote IPv4 address
111
+ * @member {String} Request#ip
112
+ * @return {String} IPv4 address
113
+ * @example
114
+ * ```js
115
+ * this.request.ip
116
+ * => '127.0.0.1'
117
+ * => '111.10.2.1'
118
+ * ```
119
+ */
120
+ get ip() {
121
+ if (this._ip) {
122
+ return this._ip;
123
+ }
124
+ const ip = this.ips[0] ?? this.socket.remoteAddress;
125
+ // will be '::ffff:x.x.x.x', should convert to standard IPv4 format
126
+ // https://zh.wikipedia.org/wiki/IPv6
127
+ this._ip = ip && ip.startsWith('::ffff:') ? ip.substring(7) : ip;
128
+ return this._ip;
129
+ }
130
+ /**
131
+ * Set the request remote IPv4 address
132
+ * @member {String} Request#ip
133
+ * @param {String} ip - IPv4 address
134
+ * @example
135
+ * ```js
136
+ * this.request.ip
137
+ * => '127.0.0.1'
138
+ * => '111.10.2.1'
139
+ * ```
140
+ */
141
+ set ip(ip) {
142
+ this._ip = ip;
143
+ }
144
+ /**
145
+ * detect if response should be json
146
+ * 1. url path ends with `.json`
147
+ * 2. response type is set to json
148
+ * 3. detect by request accept header
149
+ *
150
+ * @member {Boolean} Request#acceptJSON
151
+ * @since 1.0.0
152
+ */
153
+ get acceptJSON() {
154
+ if (this.path.endsWith('.json'))
155
+ return true;
156
+ if (this.response.type && this.response.type.indexOf('json') >= 0)
157
+ return true;
158
+ if (this.accepts('html', 'text', 'json') === 'json')
159
+ return true;
160
+ return false;
161
+ }
162
+ // How to read query safely
163
+ // https://github.com/koajs/qs/issues/5
164
+ _customQuery(cacheName, filter) {
165
+ const str = this.querystring || '';
166
+ let c = this[cacheName];
167
+ if (!c) {
168
+ c = this[cacheName] = {};
169
+ }
170
+ let cacheQuery = c[str];
171
+ if (!cacheQuery) {
172
+ cacheQuery = c[str] = {};
173
+ const isQueries = cacheName === QUERIES_CACHE;
174
+ // `querystring.parse` CANNOT parse something like `a[foo]=1&a[bar]=2`
175
+ const query = str ? node_querystring_1.default.parse(str) : {};
176
+ for (const key in query) {
177
+ if (!key) {
178
+ // key is '', like `a=b&`
179
+ continue;
180
+ }
181
+ const value = filter(query[key]);
182
+ cacheQuery[key] = value;
183
+ if (isQueries && RE_ARRAY_KEY.test(key)) {
184
+ // `this.queries['key'] => this.queries['key[]']` is compatibly supported
185
+ const subKey = key.substring(0, key.length - 2);
186
+ if (!cacheQuery[subKey]) {
187
+ cacheQuery[subKey] = value;
188
+ }
189
+ }
190
+ }
191
+ }
192
+ return cacheQuery;
193
+ }
194
+ /**
195
+ * get params pass by querystring, all values are of string type.
196
+ * @member {Object} Request#query
197
+ * @example
198
+ * ```js
199
+ * GET http://127.0.0.1:7001?name=Foo&age=20&age=21
200
+ * this.query
201
+ * => { 'name': 'Foo', 'age': '20' }
202
+ *
203
+ * GET http://127.0.0.1:7001?a=b&a=c&o[foo]=bar&b[]=1&b[]=2&e=val
204
+ * this.query
205
+ * =>
206
+ * {
207
+ * "a": "b",
208
+ * "o[foo]": "bar",
209
+ * "b[]": "1",
210
+ * "e": "val"
211
+ * }
212
+ * ```
213
+ */
214
+ get query() {
215
+ return this._customQuery(QUERY_CACHE, firstValue);
216
+ }
217
+ /**
218
+ * get params pass by querystring, all value are Array type. {@link Request#query}
219
+ * @member {Array} Request#queries
220
+ * @example
221
+ * ```js
222
+ * GET http://127.0.0.1:7001?a=b&a=c&o[foo]=bar&b[]=1&b[]=2&e=val
223
+ * this.queries
224
+ * =>
225
+ * {
226
+ * "a": ["b", "c"],
227
+ * "o[foo]": ["bar"],
228
+ * "b[]": ["1", "2"],
229
+ * "e": ["val"]
230
+ * }
231
+ * ```
232
+ */
233
+ get queries() {
234
+ return this._customQuery(QUERIES_CACHE, arrayValue);
235
+ }
236
+ /**
237
+ * Set query-string as an object.
238
+ *
239
+ * @function Request#query
240
+ * @param {Object} obj set querystring and query object for request.
241
+ */
242
+ set query(obj) {
243
+ this.querystring = node_querystring_1.default.stringify(obj);
244
+ }
245
+ }
246
+ exports.default = Request;
247
+ function firstValue(value) {
248
+ if (Array.isArray(value)) {
249
+ value = value[0];
250
+ }
251
+ return value;
252
+ }
253
+ function arrayValue(value) {
254
+ if (!Array.isArray(value)) {
255
+ value = [value];
256
+ }
257
+ return value;
258
+ }
259
+ function getFromHeaders(request, names) {
260
+ if (!names)
261
+ return '';
262
+ const fields = names.split(/\s*,\s*/);
263
+ for (const name of fields) {
264
+ const value = request.get(name);
265
+ if (value)
266
+ return value;
267
+ }
268
+ return '';
269
+ }
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvZXh0ZW5kL3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBMkM7QUFDM0Msc0NBQXdEO0FBS3hELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNwQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDbEMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDO0FBRXJDLE1BQXFCLE9BQVEsU0FBUSxjQUFjO0lBS2pEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBdUIsQ0FBQztRQUM1QyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMs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
@@ -0,0 +1,25 @@
1
+ import { Response as KoaResponse } from '@eggjs/core';
2
+ export default class Response extends KoaResponse {
3
+ /**
4
+ * Get or set a real status code.
5
+ *
6
+ * e.g.: Using 302 status redirect to the global error page
7
+ * instead of show current 500 status page.
8
+ * And access log should save 500 not 302,
9
+ * then the `realStatus` can help us find out the real status code.
10
+ * @member {Number} Response#realStatus
11
+ * @return {Number} The status code to be set.
12
+ */
13
+ get realStatus(): number;
14
+ /**
15
+ * Set a real status code.
16
+ *
17
+ * e.g.: Using 302 status redirect to the global error page
18
+ * instead of show current 500 status page.
19
+ * And access log should save 500 not 302,
20
+ * then the `realStatus` can help us find out the real status code.
21
+ * @member {Number} Response#realStatus
22
+ * @param {Number} status The status code to be set.
23
+ */
24
+ set realStatus(status: number);
25
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@eggjs/core");
4
+ const REAL_STATUS = Symbol('response realStatus');
5
+ class Response extends core_1.Response {
6
+ /**
7
+ * Get or set a real status code.
8
+ *
9
+ * e.g.: Using 302 status redirect to the global error page
10
+ * instead of show current 500 status page.
11
+ * And access log should save 500 not 302,
12
+ * then the `realStatus` can help us find out the real status code.
13
+ * @member {Number} Response#realStatus
14
+ * @return {Number} The status code to be set.
15
+ */
16
+ get realStatus() {
17
+ if (this[REAL_STATUS]) {
18
+ return this[REAL_STATUS];
19
+ }
20
+ return this.status;
21
+ }
22
+ /**
23
+ * Set a real status code.
24
+ *
25
+ * e.g.: Using 302 status redirect to the global error page
26
+ * instead of show current 500 status page.
27
+ * And access log should save 500 not 302,
28
+ * then the `realStatus` can help us find out the real status code.
29
+ * @member {Number} Response#realStatus
30
+ * @param {Number} status The status code to be set.
31
+ */
32
+ set realStatus(status) {
33
+ this[REAL_STATUS] = status;
34
+ }
35
+ }
36
+ exports.default = Response;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUFzRDtBQUV0RCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUVsRCxNQUFxQixRQUFTLFNBQVEsZUFBVztJQUMvQzs7Ozs7Ozs7O09BU0c7SUFDSCxJQUFJLFVBQVU7UUFDWixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBVyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILElBQUksVUFBVSxDQUFDLE1BQWM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUEvQkQsMkJBK0JDIn0=
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * meta middleware, should be the first middleware
3
3
  */
4
- import type { EggCoreContext } from '@eggjs/core';
5
- import type { Next } from '../../lib/type.js';
4
+ import type { ContextDelegation, Next } from '../../lib/egg.js';
6
5
  export interface MetaMiddlewareOptions {
7
6
  enable: boolean;
8
7
  logging: boolean;
9
8
  }
10
- declare const _default: (options: MetaMiddlewareOptions) => (ctx: EggCoreContext, next: Next) => Promise<void>;
9
+ declare const _default: (options: MetaMiddlewareOptions) => (ctx: ContextDelegation, next: Next) => Promise<void>;
11
10
  export default _default;
@@ -19,4 +19,4 @@ exports.default = (options) => {
19
19
  }
20
20
  };
21
21
  };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbWlkZGxld2FyZS9tZXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7QUFFSCxxREFBOEM7QUFTOUMsa0JBQWUsQ0FBQyxPQUE4QixFQUFFLEVBQUU7SUFDaEQsT0FBTyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQW1CLEVBQUUsSUFBVTtRQUN4RCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrREFBa0QsRUFDcEUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDYiw2QkFBNkI7UUFDN0IsSUFBSSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsNkJBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsRyxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbWlkZGxld2FyZS9tZXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7QUFFSCxxREFBOEM7QUFROUMsa0JBQWUsQ0FBQyxPQUE4QixFQUFFLEVBQUU7SUFDaEQsT0FBTyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQXNCLEVBQUUsSUFBVTtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrREFBa0QsRUFDcEUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDYiw2QkFBNkI7UUFDN0IsSUFBSSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsNkJBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsRyxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -1,8 +1,7 @@
1
- import type { EggCoreContext } from '@eggjs/core';
2
- import type { Next } from '../../lib/type.js';
1
+ import type { Next, ContextDelegation } from '../../lib/egg.js';
3
2
  export interface NotFoundMiddlewareOptions {
4
3
  enable: boolean;
5
4
  pageUrl: string;
6
5
  }
7
- declare const _default: (options: NotFoundMiddlewareOptions) => (ctx: EggCoreContext, next: Next) => Promise<void>;
6
+ declare const _default: (options: NotFoundMiddlewareOptions) => (ctx: ContextDelegation, next: Next) => Promise<void>;
8
7
  export default _default;
@@ -28,4 +28,4 @@ exports.default = (options) => {
28
28
  ctx.body = notFoundHtml;
29
29
  };
30
30
  };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90Zm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL21pZGRsZXdhcmUvbm90Zm91bmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxrQkFBZSxDQUFDLE9BQWtDLEVBQUUsRUFBRTtJQUNwRCxPQUFPLEtBQUssVUFBVSxRQUFRLENBQUMsR0FBbUIsRUFBRSxJQUFVO1FBQzVELE1BQU0sSUFBSSxFQUFFLENBQUM7UUFFYixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVELHNEQUFzRDtRQUN0RCxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUVqQixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQixHQUFHLENBQUMsSUFBSSxHQUFHO2dCQUNULE9BQU8sRUFBRSxXQUFXO2FBQ3JCLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLHdCQUF3QixDQUFDO1FBRTlDLG9DQUFvQztRQUNwQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLFlBQVkseUNBQXlDLE9BQU8sQ0FBQyxPQUFPLHFDQUFxQyxDQUFDO1lBQ3hILE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7WUFDckIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFDRCxHQUFHLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztJQUMxQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMifQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90Zm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL21pZGRsZXdhcmUvbm90Zm91bmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxrQkFBZSxDQUFDLE9BQWtDLEVBQUUsRUFBRTtJQUNwRCxPQUFPLEtBQUssVUFBVSxRQUFRLENBQUMsR0FBc0IsRUFBRSxJQUFVO1FBQy9ELE1BQU0sSUFBSSxFQUFFLENBQUM7UUFFYixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVELHNEQUFzRDtRQUN0RCxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUVqQixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQixHQUFHLENBQUMsSUFBSSxHQUFHO2dCQUNULE9BQU8sRUFBRSxXQUFXO2FBQ3JCLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLHdCQUF3QixDQUFDO1FBRTlDLG9DQUFvQztRQUNwQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLFlBQVkseUNBQXlDLE9BQU8sQ0FBQyxPQUFPLHFDQUFxQyxDQUFDO1lBQ3hILE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7WUFDckIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFDRCxHQUFHLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztJQUMxQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -1,7 +1,9 @@
1
- import type { EggCoreContext } from '@eggjs/core';
2
- export type SiteFileContentFun = (ctx: EggCoreContext) => Promise<Buffer | string>;
1
+ import type { Next, ContextDelegation } from '../../lib/egg.js';
2
+ export type SiteFileContentFun = (ctx: ContextDelegation) => Promise<Buffer | string>;
3
3
  export interface SiteFileMiddlewareOptions {
4
4
  enable: boolean;
5
5
  cacheControl: string;
6
6
  [key: string]: string | Buffer | boolean | SiteFileContentFun | URL;
7
7
  }
8
+ declare const _default: (options: SiteFileMiddlewareOptions) => (ctx: ContextDelegation, next: Next) => Promise<void>;
9
+ export default _default;
@@ -7,12 +7,11 @@ const node_path_1 = __importDefault(require("node:path"));
7
7
  const node_url_1 = require("node:url");
8
8
  const promises_1 = require("node:fs/promises");
9
9
  const BUFFER_CACHE = Symbol('siteFile URL buffer cache');
10
- module.exports = (options) => {
10
+ exports.default = (options) => {
11
11
  return async function siteFile(ctx, next) {
12
12
  if (ctx.method !== 'HEAD' && ctx.method !== 'GET') {
13
13
  return next();
14
14
  }
15
- /* istanbul ignore if */
16
15
  if (ctx.path[0] !== '/') {
17
16
  return next();
18
17
  }
@@ -56,4 +55,4 @@ module.exports = (options) => {
56
55
  return next();
57
56
  };
58
57
  };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZV9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9taWRkbGV3YXJlL3NpdGVfZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUE2QjtBQUM3Qix1Q0FBeUM7QUFDekMsK0NBQTRDO0FBWTVDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRXpELE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxPQUFrQyxFQUFFLEVBQUU7SUFDdEQsT0FBTyxLQUFLLFVBQVUsUUFBUSxDQUFDLEdBQW1CLEVBQUUsSUFBVTtRQUM1RCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbEQsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDO1FBQ0Qsd0JBQXdCO1FBQ3hCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUVELG9IQUFvSDtRQUNwSCxzQkFBc0I7UUFDdEIsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELGlCQUFpQjtRQUNqQixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsTUFBTTtRQUNOLElBQUksT0FBTyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQzNCLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsbUJBQW1CO1lBQ25CLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBVyxDQUFDO1lBQzFELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLEdBQUcsTUFBTSxJQUFBLG1CQUFRLEVBQUMsSUFBQSx3QkFBYSxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLEdBQUcsbUJBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLG9CQUFvQjtRQUNwQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0MsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7WUFDbkIsR0FBRyxDQUFDLElBQUksR0FBRyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZV9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9taWRkbGV3YXJlL3NpdGVfZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUE2QjtBQUM3Qix1Q0FBeUM7QUFDekMsK0NBQTRDO0FBVzVDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRXpELGtCQUFlLENBQUMsT0FBa0MsRUFBRSxFQUFFO0lBQ3BELE9BQU8sS0FBSyxVQUFVLFFBQVEsQ0FBQyxHQUFzQixFQUFFLElBQVU7UUFDL0QsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2xELE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUVELG9IQUFvSDtRQUNwSCxzQkFBc0I7UUFDdEIsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELGlCQUFpQjtRQUNqQixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsTUFBTTtRQUNOLElBQUksT0FBTyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQzNCLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsbUJBQW1CO1lBQ25CLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBVyxDQUFDO1lBQzFELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLEdBQUcsTUFBTSxJQUFBLG1CQUFRLEVBQUMsSUFBQSx3QkFBYSxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLEdBQUcsbUJBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLG9CQUFvQjtRQUNwQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0MsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7WUFDbkIsR0FBRyxDQUFDLElBQUksR0FBRyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const node_path_1 = __importDefault(require("node:path"));
7
7
  const node_url_1 = require("node:url");
8
+ const utils_js_1 = require("../lib/utils.js");
8
9
  /**
9
10
  * The configuration of egg application, can be access by `app.config`
10
11
  * @class Config
@@ -186,7 +187,7 @@ exports.default = (appInfo) => {
186
187
  */
187
188
  config.siteFile = {
188
189
  enable: true,
189
- '/favicon.ico': (0, node_url_1.pathToFileURL)(node_path_1.default.join(__dirname, 'favicon.png')),
190
+ '/favicon.ico': (0, node_url_1.pathToFileURL)((0, utils_js_1.getSourceFile)('config/favicon.png')),
190
191
  // default cache in 30 days
191
192
  cacheControl: 'public, max-age=2592000',
192
193
  };
@@ -375,4 +376,4 @@ exports.default = (appInfo) => {
375
376
  config.onClientError = undefined;
376
377
  return config;
377
378
  };
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTZCO0FBQzdCLHVDQUF5QztBQUl6Qzs7OztHQUlHO0FBQ0gsa0JBQWUsQ0FBQyxPQUFtQixFQUFFLEVBQUU7SUFDckMsTUFBTSxNQUFNLEdBQTBCO1FBQ3BDOzs7OztXQUtHO1FBQ0gsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1FBRWhCOzs7OztXQUtHO1FBQ0gsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBRWxCOzs7Ozs7V0FNRztRQUNILElBQUksRUFBRSxFQUFFO1FBRVI7Ozs7OztXQU1HO1FBQ0gsT0FBTyxFQUFFO1FBQ1AsMEJBQTBCO1FBQzFCLCtCQUErQjtTQUNoQztRQUVEOzs7Ozs7V0FNRztRQUNILEtBQUssRUFBRSxLQUFLO1FBRVo7Ozs7Ozs7O1dBUUc7UUFDSCxXQUFXLEVBQUUsQ0FBQztRQUVkOzs7Ozs7V0FNRztRQUNILGFBQWEsRUFBRSxDQUFDO1FBRWhCOzs7Ozs7V0FNRztRQUNILGVBQWUsRUFBRSxtQkFBbUI7UUFFcEM7Ozs7OztXQU1HO1FBQ0gsU0FBUyxFQUFFLGlCQUFpQjtRQUU1Qjs7Ozs7O1dBTUc7UUFDSCxXQUFXLEVBQUUsRUFBRTtRQUVmOzs7OztXQUtHO1FBQ0gsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1FBRWhCOzs7OztXQUtHO1FBQ0gsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBRXhCOzs7OztXQUtHO1FBQ0gsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBRWxCOzs7OztXQUtHO1FBQ0gsTUFBTSxFQUFFLG1CQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBRXpDOzs7Ozs7O1dBT0c7UUFDSCxJQUFJLEVBQUU7WUFDSixNQUFNLEVBQUUsSUFB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
379
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTZCO0FBQzdCLHVDQUF5QztBQUd6Qyw4Q0FBZ0Q7QUFFaEQ7Ozs7R0FJRztBQUNILGtCQUFlLENBQUMsT0FBbUIsRUFBRSxFQUFFO0lBQ3JDLE1BQU0sTUFBTSxHQUEwQjtRQUNwQzs7Ozs7V0FLRztRQUNILEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztRQUVoQjs7Ozs7V0FLRztRQUNILElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUVsQjs7Ozs7O1dBTUc7UUFDSCxJQUFJLEVBQUUsRUFBRTtRQUVSOzs7Ozs7V0FNRztRQUNILE9BQU8sRUFBRTtRQUNQLDBCQUEwQjtRQUMxQiwrQkFBK0I7U0FDaEM7UUFFRDs7Ozs7O1dBTUc7UUFDSCxLQUFLLEVBQUUsS0FBSztRQUVaOzs7Ozs7OztXQVFHO1FBQ0gsV0FBVyxFQUFFLENBQUM7UUFFZDs7Ozs7O1dBTUc7UUFDSCxhQUFhLEVBQUUsQ0FBQztRQUVoQjs7Ozs7O1dBTUc7UUFDSCxlQUFlLEVBQUUsbUJBQW1CO1FBRXBDOzs7Ozs7V0FNRztRQUNILFNBQVMsRUFBRSxpQkFBaUI7UUFFNUI7Ozs7OztXQU1HO1FBQ0gsV0FBVyxFQUFFLEVBQUU7UUFFZjs7Ozs7V0FLRztRQUNILEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztRQUVoQjs7Ozs7V0FLRztRQUNILE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUV4Qjs7Ozs7V0FLRztRQUNILElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUVsQjs7Ozs7V0FLRztRQUNILE1BQU0sRUFBRSxtQkFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUV6Qzs7Ozs7OztXQU9HO1FBQ0gsSUFBSSxFQUFFO1lBQ0os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
@@ -1,16 +1,9 @@
1
1
  import http from 'node:http';
2
2
  import { Socket } from 'node:net';
3
- import { EggApplicationCore, EggContext, EggApplicationCoreOptions } from './egg.js';
3
+ import { EggApplicationCore, type EggApplicationCoreOptions, type ContextDelegation } from './egg.js';
4
4
  import { AppWorkerLoader } from './loader/index.js';
5
- import { BaseContextClass } from './core/base_context_class.js';
5
+ import Helper from '../app/extend/helper.js';
6
6
  declare const EGG_LOADER: unique symbol;
7
- /**
8
- * The Helper class which can be used as utility function.
9
- * We support developers to extend Helper through ${baseDir}/app/extend/helper.js ,
10
- * then you can use all method on `ctx.helper` that is a instance of Helper.
11
- */
12
- declare class HelperClass extends BaseContextClass {
13
- }
14
7
  /**
15
8
  * Singleton instance in App Worker, extend {@link EggApplicationCore}
16
9
  * @augments EggApplicationCore
@@ -22,7 +15,7 @@ export declare class Application extends EggApplicationCore {
22
15
  * reference to {@link Helper}
23
16
  * @member {Helper} Application#Helper
24
17
  */
25
- Helper: typeof HelperClass;
18
+ Helper: typeof Helper;
26
19
  /**
27
20
  * @class
28
21
  * @param {Object} options - see {@link EggApplicationCore}
@@ -49,14 +42,14 @@ export declare class Application extends EggApplicationCore {
49
42
  * @see Context#runInBackground
50
43
  * @param {Function} scope - the first args is an anonymous ctx
51
44
  */
52
- runInBackground(scope: (ctx: EggContext) => void): void;
45
+ runInBackground(scope: (ctx: ContextDelegation) => Promise<void>, req?: unknown): void;
53
46
  /**
54
47
  * Run async function in the anonymous context scope
55
48
  * @see Context#runInAnonymousContextScope
56
49
  * @param {Function} scope - the first args is an anonymous ctx, scope should be async function
57
50
  * @param {Request} [req] - if you want to mock request like querystring, you can pass an object to this function.
58
51
  */
59
- runInAnonymousContextScope(scope: (ctx: EggContext) => Promise<void>, req?: unknown): Promise<void>;
52
+ runInAnonymousContextScope(scope: (ctx: ContextDelegation) => Promise<void>, req?: unknown): Promise<void>;
60
53
  /**
61
54
  * secret key for Application
62
55
  * @member {String} Application#keys