egg 4.0.5 → 4.0.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.
@@ -7,7 +7,7 @@ export default class Request extends EggCoreRequest {
7
7
  ctx: Context;
8
8
  response: Response;
9
9
  /**
10
- * Request body, parsed from koa-bodyparser or egg-multipart
10
+ * Request body, parsed from koa-bodyparser or @eggjs/multipart
11
11
  */
12
12
  body: any;
13
13
  /**
@@ -48,7 +48,7 @@ exports.default = {
48
48
  */
49
49
  multipart: {
50
50
  enable: true,
51
- package: 'egg-multipart',
51
+ package: '@eggjs/multipart',
52
52
  },
53
53
  /**
54
54
  * security middlewares and extends
@@ -78,7 +78,7 @@ exports.default = {
78
78
  */
79
79
  logrotator: {
80
80
  enable: true,
81
- package: 'egg-logrotator',
81
+ package: '@eggjs/logrotator',
82
82
  },
83
83
  /**
84
84
  * schedule tasks
@@ -118,7 +118,7 @@ exports.default = {
118
118
  */
119
119
  view: {
120
120
  enable: true,
121
- package: 'egg-view',
121
+ package: '@eggjs/view',
122
122
  },
123
123
  };
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDIn0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxrQkFBa0I7S0FDNUI7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGlCQUFpQjtLQUMzQjtJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxFQUFFO1FBQ1gsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsb0JBQW9CO0tBQzlCO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxtQkFBbUI7S0FDN0I7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGlCQUFpQjtLQUMzQjtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxFQUFFO1FBQ04sTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsY0FBYztLQUN4QjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtDQUNGLENBQUMifQ==
@@ -298,5 +298,8 @@ declare module '@eggjs/core' {
298
298
  createAnonymousContext(req?: any): EggContext;
299
299
  runInAnonymousContextScope(scope: (ctx: Context) => Promise<void>, req?: unknown): Promise<void>;
300
300
  readonly messenger: IMessenger;
301
+ Subscription: typeof BaseContextClass;
302
+ BaseHookClass: typeof BaseHookClass;
303
+ Boot: typeof BaseHookClass;
301
304
  }
302
305
  }
@@ -15,6 +15,9 @@ import '@eggjs/security';
15
15
  import '@eggjs/schedule';
16
16
  import '@eggjs/session';
17
17
  import '@eggjs/onerror';
18
+ import '@eggjs/logrotator';
19
+ import '@eggjs/multipart';
20
+ import '@eggjs/view';
18
21
  export type { EggAppInfo, } from '@eggjs/core';
19
22
  type IgnoreItem = string | RegExp | ((ctx: Context) => boolean);
20
23
  type IgnoreOrMatch = IgnoreItem | IgnoreItem[];
@@ -61,6 +64,17 @@ export interface HttpClientConfig {
61
64
  */
62
65
  useHttpClientNext?: boolean;
63
66
  }
67
+ /**
68
+ * Powerful Partial, Support adding ? modifier to a mapped property in deep level
69
+ * @example
70
+ * import { PowerPartial, EggAppConfig } from 'egg';
71
+ *
72
+ * // { view: { defaultEngines: string } } => { view?: { defaultEngines?: string } }
73
+ * type EggConfig = PowerPartial<EggAppConfig>
74
+ */
75
+ export type PowerPartial<T> = {
76
+ [U in keyof T]?: T[U] extends object ? PowerPartial<T[U]> : T[U];
77
+ };
64
78
  export interface EggAppConfig extends EggCoreAppConfig {
65
79
  workerStartTimeout: number;
66
80
  baseDir: string;
@@ -10,4 +10,7 @@ require("@eggjs/security");
10
10
  require("@eggjs/schedule");
11
11
  require("@eggjs/session");
12
12
  require("@eggjs/onerror");
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLHVCQUF1QjtBQUN2QiwwQkFBd0I7QUFDeEIsOEJBQTRCO0FBQzVCLHdCQUFzQjtBQUN0Qix1QkFBcUI7QUFDckIseUJBQXVCO0FBQ3ZCLDJCQUF5QjtBQUN6QiwyQkFBeUI7QUFDekIsMEJBQXdCO0FBQ3hCLDBCQUF3QiJ9
13
+ require("@eggjs/logrotator");
14
+ require("@eggjs/multipart");
15
+ require("@eggjs/view");
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLHVCQUF1QjtBQUN2QiwwQkFBd0I7QUFDeEIsOEJBQTRCO0FBQzVCLHdCQUFzQjtBQUN0Qix1QkFBcUI7QUFDckIseUJBQXVCO0FBQ3ZCLDJCQUF5QjtBQUN6QiwyQkFBeUI7QUFDekIsMEJBQXdCO0FBQ3hCLDBCQUF3QjtBQUN4Qiw2QkFBMkI7QUFDM0IsNEJBQTBCO0FBQzFCLHVCQUFxQiJ9
@@ -7,7 +7,7 @@ export default class Request extends EggCoreRequest {
7
7
  ctx: Context;
8
8
  response: Response;
9
9
  /**
10
- * Request body, parsed from koa-bodyparser or egg-multipart
10
+ * Request body, parsed from koa-bodyparser or @eggjs/multipart
11
11
  */
12
12
  body: any;
13
13
  /**
@@ -46,7 +46,7 @@ export default {
46
46
  */
47
47
  multipart: {
48
48
  enable: true,
49
- package: 'egg-multipart',
49
+ package: '@eggjs/multipart',
50
50
  },
51
51
  /**
52
52
  * security middlewares and extends
@@ -76,7 +76,7 @@ export default {
76
76
  */
77
77
  logrotator: {
78
78
  enable: true,
79
- package: 'egg-logrotator',
79
+ package: '@eggjs/logrotator',
80
80
  },
81
81
  /**
82
82
  * schedule tasks
@@ -116,7 +116,7 @@ export default {
116
116
  */
117
117
  view: {
118
118
  enable: true,
119
- package: 'egg-view',
119
+ package: '@eggjs/view',
120
120
  },
121
121
  };
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDIn0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxrQkFBa0I7S0FDNUI7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGlCQUFpQjtLQUMzQjtJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxFQUFFO1FBQ1gsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsb0JBQW9CO0tBQzlCO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxtQkFBbUI7S0FDN0I7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGlCQUFpQjtLQUMzQjtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxFQUFFO1FBQ04sTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsY0FBYztLQUN4QjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtDQUNGLENBQUMifQ==
@@ -298,5 +298,8 @@ declare module '@eggjs/core' {
298
298
  createAnonymousContext(req?: any): EggContext;
299
299
  runInAnonymousContextScope(scope: (ctx: Context) => Promise<void>, req?: unknown): Promise<void>;
300
300
  readonly messenger: IMessenger;
301
+ Subscription: typeof BaseContextClass;
302
+ BaseHookClass: typeof BaseHookClass;
303
+ Boot: typeof BaseHookClass;
301
304
  }
302
305
  }
@@ -15,6 +15,9 @@ import '@eggjs/security';
15
15
  import '@eggjs/schedule';
16
16
  import '@eggjs/session';
17
17
  import '@eggjs/onerror';
18
+ import '@eggjs/logrotator';
19
+ import '@eggjs/multipart';
20
+ import '@eggjs/view';
18
21
  export type { EggAppInfo, } from '@eggjs/core';
19
22
  type IgnoreItem = string | RegExp | ((ctx: Context) => boolean);
20
23
  type IgnoreOrMatch = IgnoreItem | IgnoreItem[];
@@ -61,6 +64,17 @@ export interface HttpClientConfig {
61
64
  */
62
65
  useHttpClientNext?: boolean;
63
66
  }
67
+ /**
68
+ * Powerful Partial, Support adding ? modifier to a mapped property in deep level
69
+ * @example
70
+ * import { PowerPartial, EggAppConfig } from 'egg';
71
+ *
72
+ * // { view: { defaultEngines: string } } => { view?: { defaultEngines?: string } }
73
+ * type EggConfig = PowerPartial<EggAppConfig>
74
+ */
75
+ export type PowerPartial<T> = {
76
+ [U in keyof T]?: T[U] extends object ? PowerPartial<T[U]> : T[U];
77
+ };
64
78
  export interface EggAppConfig extends EggCoreAppConfig {
65
79
  workerStartTimeout: number;
66
80
  baseDir: string;
@@ -8,4 +8,7 @@ import '@eggjs/security';
8
8
  import '@eggjs/schedule';
9
9
  import '@eggjs/session';
10
10
  import '@eggjs/onerror';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSx1QkFBdUI7QUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sZ0JBQWdCLENBQUMifQ==
11
+ import '@eggjs/logrotator';
12
+ import '@eggjs/multipart';
13
+ import '@eggjs/view';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSx1QkFBdUI7QUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sYUFBYSxDQUFDIn0=
package/dist/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "egg",
3
- "version": "4.0.5"
3
+ "version": "4.0.7"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "egg",
3
- "version": "4.0.5",
3
+ "version": "4.0.7",
4
4
  "engines": {
5
5
  "node": ">= 18.19.0"
6
6
  },
@@ -25,20 +25,20 @@
25
25
  "@eggjs/development": "^4.0.0",
26
26
  "@eggjs/i18n": "^3.0.1",
27
27
  "@eggjs/jsonp": "^3.0.0",
28
+ "@eggjs/logrotator": "^4.0.0",
29
+ "@eggjs/multipart": "^4.0.0",
28
30
  "@eggjs/onerror": "^3.0.0",
29
31
  "@eggjs/schedule": "^5.0.2",
30
32
  "@eggjs/security": "^4.0.0",
31
33
  "@eggjs/session": "^4.0.1",
32
34
  "@eggjs/static": "^3.0.0",
33
35
  "@eggjs/utils": "^4.2.5",
36
+ "@eggjs/view": "^3.0.1",
34
37
  "@eggjs/watcher": "^4.0.4",
35
38
  "circular-json-for-egg": "^1.0.0",
36
39
  "cluster-client": "^3.7.0",
37
40
  "egg-errors": "^2.3.2",
38
41
  "egg-logger": "^3.6.1",
39
- "egg-logrotator": "^3.2.0",
40
- "egg-multipart": "^3.5.0",
41
- "egg-view": "^2.1.4",
42
42
  "extend2": "^4.0.0",
43
43
  "graceful": "^2.0.0",
44
44
  "humanize-ms": "^2.0.0",
@@ -17,7 +17,7 @@ export default class Request extends EggCoreRequest {
17
17
  declare response: Response;
18
18
 
19
19
  /**
20
- * Request body, parsed from koa-bodyparser or egg-multipart
20
+ * Request body, parsed from koa-bodyparser or @eggjs/multipart
21
21
  */
22
22
  declare body: any;
23
23
 
@@ -50,7 +50,7 @@ export default {
50
50
  */
51
51
  multipart: {
52
52
  enable: true,
53
- package: 'egg-multipart',
53
+ package: '@eggjs/multipart',
54
54
  },
55
55
 
56
56
  /**
@@ -83,7 +83,7 @@ export default {
83
83
  */
84
84
  logrotator: {
85
85
  enable: true,
86
- package: 'egg-logrotator',
86
+ package: '@eggjs/logrotator',
87
87
  },
88
88
 
89
89
  /**
@@ -127,6 +127,6 @@ export default {
127
127
  */
128
128
  view: {
129
129
  enable: true,
130
- package: 'egg-view',
130
+ package: '@eggjs/view',
131
131
  },
132
132
  };
package/src/lib/egg.ts CHANGED
@@ -698,5 +698,8 @@ declare module '@eggjs/core' {
698
698
  createAnonymousContext(req?: any): EggContext;
699
699
  runInAnonymousContextScope(scope: (ctx: Context) => Promise<void>, req?: unknown): Promise<void>;
700
700
  readonly messenger: IMessenger;
701
+ Subscription: typeof BaseContextClass;
702
+ BaseHookClass: typeof BaseHookClass;
703
+ Boot: typeof BaseHookClass;
701
704
  }
702
705
  }
package/src/lib/types.ts CHANGED
@@ -26,6 +26,10 @@ import '@eggjs/security';
26
26
  import '@eggjs/schedule';
27
27
  import '@eggjs/session';
28
28
  import '@eggjs/onerror';
29
+ import '@eggjs/logrotator';
30
+ import '@eggjs/multipart';
31
+ import '@eggjs/view';
32
+
29
33
  export type {
30
34
  EggAppInfo,
31
35
  } from '@eggjs/core';
@@ -79,6 +83,20 @@ export interface HttpClientConfig {
79
83
  useHttpClientNext?: boolean;
80
84
  }
81
85
 
86
+ /**
87
+ * Powerful Partial, Support adding ? modifier to a mapped property in deep level
88
+ * @example
89
+ * import { PowerPartial, EggAppConfig } from 'egg';
90
+ *
91
+ * // { view: { defaultEngines: string } } => { view?: { defaultEngines?: string } }
92
+ * type EggConfig = PowerPartial<EggAppConfig>
93
+ */
94
+ export type PowerPartial<T> = {
95
+ [U in keyof T]?: T[U] extends object
96
+ ? PowerPartial<T[U]>
97
+ : T[U]
98
+ };
99
+
82
100
  export interface EggAppConfig extends EggCoreAppConfig {
83
101
  workerStartTimeout: number;
84
102
  baseDir: string;