egg 4.0.1 → 4.0.2

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.
@@ -18,7 +18,7 @@ exports.default = {
18
18
  */
19
19
  session: {
20
20
  enable: true,
21
- package: 'egg-session',
21
+ package: '@eggjs/session',
22
22
  },
23
23
  /**
24
24
  * i18n
@@ -58,7 +58,7 @@ exports.default = {
58
58
  */
59
59
  security: {
60
60
  enable: true,
61
- package: 'egg-security',
61
+ package: '@eggjs/security',
62
62
  },
63
63
  /**
64
64
  * local development helper
@@ -121,4 +121,4 @@ exports.default = {
121
121
  package: 'egg-view',
122
122
  },
123
123
  };
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDIn0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGFBQWE7S0FDdkI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxFQUFFO1FBQ1QsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxvQkFBb0I7S0FDOUI7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxjQUFjO0tBQ3hCO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxVQUFVO0tBQ3BCO0NBQ0YsQ0FBQyJ9
@@ -9,6 +9,7 @@ export type { Helper as IHelper, };
9
9
  export * from './lib/egg.js';
10
10
  export * from './lib/types.js';
11
11
  export * from './lib/start.js';
12
+ export * from './lib/core/singleton.js';
12
13
  export * from './lib/error/index.js';
13
14
  export type { LoggerLevel, EggLogger, } from 'egg-logger';
14
15
  export * from './lib/core/httpclient.js';
@@ -33,6 +33,7 @@ exports.Helper = helper_js_1.default;
33
33
  __exportStar(require("./lib/egg.js"), exports);
34
34
  __exportStar(require("./lib/types.js"), exports);
35
35
  __exportStar(require("./lib/start.js"), exports);
36
+ __exportStar(require("./lib/core/singleton.js"), exports);
36
37
  // export errors
37
38
  __exportStar(require("./lib/error/index.js"), exports);
38
39
  // export httpClients
@@ -77,4 +78,4 @@ Object.defineProperty(exports, "BaseContextClass", { enumerable: true, get: func
77
78
  */
78
79
  var base_hook_class_js_1 = require("./lib/core/base_hook_class.js");
79
80
  Object.defineProperty(exports, "Boot", { enumerable: true, get: function () { return base_hook_class_js_1.BaseHookClass; } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDRFQUFvRTtBQWdGOUMsMkZBaEZiLHdDQUFnQixPQWdGTztBQVFWLHdGQXhGYix3Q0FBZ0IsT0F3Rkk7QUFRUCw2RkFoR2Isd0NBQWdCLE9BZ0dTO0FBL0ZsQyw2Q0FJd0I7QUF5Q1Ysc0ZBNUNaLG1CQUFRLE9BNENTO0FBeENuQix1RUFBNEM7QUFJMUMsaUJBSkssbUJBQU0sQ0FJTDtBQU9SLGVBQWU7QUFDZiwrQ0FBNkI7QUFDN0IsaURBQStCO0FBQy9CLGlEQUErQjtBQUUvQixnQkFBZ0I7QUFDaEIsdURBQXFDO0FBUXJDLHFCQUFxQjtBQUNyQiwyREFBeUM7QUFDekMsbUVBQWlEO0FBRWpEOzs7R0FHRztBQUNILGlEQUErQjtBQVkvQjs7O0dBR0c7QUFDSCx1REFBbUQ7QUFBMUMsNkdBQUEsV0FBVyxPQUFBO0FBRXBCOzs7R0FHRztBQUNILDJDQUF1QztBQUE5QixpR0FBQSxLQUFLLE9BQUE7QUFFZDs7O0dBR0c7QUFFSDs7O0dBR0c7QUFFSCxrREFBMkU7QUFBbEUsMkdBQUEsZUFBZSxPQUFBO0FBQUUsNkdBQUEsaUJBQWlCLE9BQUE7QUEwQjNDOzs7R0FHRztBQUNILDBFQUFvRTtBQUEzRCx5SEFBQSxnQkFBZ0IsT0FBQTtBQUV6Qjs7R0FFRztBQUNILG9FQUFzRTtBQUE3RCwwR0FBQSxhQUFhLE9BQVEifQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDRFQUFvRTtBQWlGOUMsMkZBakZiLHdDQUFnQixPQWlGTztBQVFWLHdGQXpGYix3Q0FBZ0IsT0F5Rkk7QUFRUCw2RkFqR2Isd0NBQWdCLE9BaUdTO0FBaEdsQyw2Q0FJd0I7QUEwQ1Ysc0ZBN0NaLG1CQUFRLE9BNkNTO0FBekNuQix1RUFBNEM7QUFJMUMsaUJBSkssbUJBQU0sQ0FJTDtBQU9SLGVBQWU7QUFDZiwrQ0FBNkI7QUFDN0IsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwwREFBd0M7QUFFeEMsZ0JBQWdCO0FBQ2hCLHVEQUFxQztBQVFyQyxxQkFBcUI7QUFDckIsMkRBQXlDO0FBQ3pDLG1FQUFpRDtBQUVqRDs7O0dBR0c7QUFDSCxpREFBK0I7QUFZL0I7OztHQUdHO0FBQ0gsdURBQW1EO0FBQTFDLDZHQUFBLFdBQVcsT0FBQTtBQUVwQjs7O0dBR0c7QUFDSCwyQ0FBdUM7QUFBOUIsaUdBQUEsS0FBSyxPQUFBO0FBRWQ7OztHQUdHO0FBRUg7OztHQUdHO0FBRUgsa0RBQTJFO0FBQWxFLDJHQUFBLGVBQWUsT0FBQTtBQUFFLDZHQUFBLGlCQUFpQixPQUFBO0FBMEIzQzs7O0dBR0c7QUFDSCwwRUFBb0U7QUFBM0QseUhBQUEsZ0JBQWdCLE9BQUE7QUFFekI7O0dBRUc7QUFDSCxvRUFBc0U7QUFBN0QsMEdBQUEsYUFBYSxPQUFRIn0=
@@ -1,14 +1,14 @@
1
- import type { EggApplicationCore } from '../egg.js';
2
- export type SingletonCreateMethod = (config: Record<string, any>, app: EggApplicationCore, clientName: string) => unknown | Promise<unknown>;
1
+ import type { EggCore } from '@eggjs/core';
2
+ export type SingletonCreateMethod = (config: Record<string, any>, app: EggCore, clientName: string) => unknown | Promise<unknown>;
3
3
  export interface SingletonOptions {
4
4
  name: string;
5
- app: EggApplicationCore;
5
+ app: EggCore;
6
6
  create: SingletonCreateMethod;
7
7
  }
8
- export declare class Singleton {
8
+ export declare class Singleton<T = any> {
9
9
  #private;
10
- readonly clients: Map<string, any>;
11
- readonly app: EggApplicationCore;
10
+ readonly clients: Map<string, T>;
11
+ readonly app: EggCore;
12
12
  readonly create: SingletonCreateMethod;
13
13
  readonly name: string;
14
14
  readonly options: Record<string, any>;
@@ -16,8 +16,14 @@ export declare class Singleton {
16
16
  init(): void | Promise<void>;
17
17
  initSync(): void;
18
18
  initAsync(): Promise<void>;
19
- get(id: string): any;
20
- getSingletonInstance(id: string): any;
21
- createInstance(config: Record<string, any>, clientName: string): unknown;
22
- createInstanceAsync(config: Record<string, any>, clientName: string): Promise<unknown>;
19
+ /**
20
+ * @deprecated please use `getSingletonInstance(id)` instead
21
+ */
22
+ get(id: string): NonNullable<T>;
23
+ /**
24
+ * Get singleton instance by id
25
+ */
26
+ getSingletonInstance(id: string): NonNullable<T>;
27
+ createInstance(config: Record<string, any>, clientName: string): T;
28
+ createInstanceAsync(config: Record<string, any>, clientName: string): Promise<T>;
23
29
  }
@@ -35,7 +35,7 @@ class Singleton {
35
35
  this.#extendDynamicMethods(client);
36
36
  return;
37
37
  }
38
- // multi client, use app[name].getInstance(id)
38
+ // multi client, use app[name].getSingletonInstance(id)
39
39
  if (options.clients) {
40
40
  Object.keys(options.clients).forEach(id => {
41
41
  const client = this.createInstance(options.clients[id], id);
@@ -72,10 +72,15 @@ class Singleton {
72
72
  #setClientToApp(client) {
73
73
  Reflect.set(this.app, this.name, client);
74
74
  }
75
+ /**
76
+ * @deprecated please use `getSingletonInstance(id)` instead
77
+ */
75
78
  get(id) {
76
79
  return this.clients.get(id);
77
80
  }
78
- // alias to `get(id)`
81
+ /**
82
+ * Get singleton instance by id
83
+ */
79
84
  getSingletonInstance(id) {
80
85
  return this.clients.get(id);
81
86
  }
@@ -117,4 +122,4 @@ class Singleton {
117
122
  }
118
123
  }
119
124
  exports.Singleton = Singleton;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBaUM7QUFDakMsMkNBQTZDO0FBWTdDLE1BQWEsU0FBUztJQUNYLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0lBQ2pDLEdBQUcsQ0FBcUI7SUFDeEIsTUFBTSxDQUF3QjtJQUM5QixJQUFJLENBQVM7SUFDYixPQUFPLENBQXNCO0lBRXRDLFlBQVksT0FBeUI7UUFDbkMsSUFBQSxxQkFBTSxFQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsZ0VBQWdFLENBQUMsQ0FBQztRQUN2RixJQUFBLHFCQUFNLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSwrREFBK0QsQ0FBQyxDQUFDO1FBQ3JGLElBQUEscUJBQU0sRUFBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGtFQUFrRSxDQUFDLENBQUM7UUFDM0YsSUFBQSxxQkFBTSxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxtQkFBbUIsT0FBTyxDQUFDLElBQUksMkJBQTJCLENBQUMsQ0FBQztRQUNuRyxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLElBQUEsNEJBQWUsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUks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
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBaUM7QUFDakMsMkNBQTZDO0FBWTdDLE1BQWEsU0FBUztJQUNYLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO0lBQy9CLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBd0I7SUFDOUIsSUFBSSxDQUFTO0lBQ2IsT0FBTyxDQUFzQjtJQUV0QyxZQUFZLE9BQXlCO1FBQ25DLElBQUEscUJBQU0sRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGdFQUFnRSxDQUFDLENBQUM7UUFDdkYsSUFBQSxxQkFBTSxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsK0RBQStELENBQUMsQ0FBQztRQUNyRixJQUFBLHFCQUFNLEVBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxrRUFBa0UsQ0FBQyxDQUFDO1FBQzNGLElBQUEscUJBQU0sRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsbUJBQW1CLE9BQU8sQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUM7UUFDbkcsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxJQUFBLDRCQUFlLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENB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
@@ -296,5 +296,6 @@ declare module '@eggjs/core' {
296
296
  HttpClient: typeof HttpClient;
297
297
  get httpClient(): HttpClient;
298
298
  curl<T = any>(url: HttpClientRequestURL, options?: HttpClientRequestOptions): Promise<HttpClientResponse<T>>;
299
+ addSingleton(name: string, create: SingletonCreateMethod): void;
299
300
  }
300
301
  }
@@ -11,6 +11,9 @@ import '@eggjs/development';
11
11
  import '@eggjs/jsonp';
12
12
  import '@eggjs/i18n';
13
13
  import '@eggjs/static';
14
+ import '@eggjs/security';
15
+ import '@eggjs/schedule';
16
+ import '@eggjs/session';
14
17
  export type { EggAppInfo, } from '@eggjs/core';
15
18
  type IgnoreItem = string | RegExp | ((ctx: Context) => boolean);
16
19
  type IgnoreOrMatch = IgnoreItem | IgnoreItem[];
@@ -175,30 +178,6 @@ export interface EggAppConfig extends EggCoreAppConfig {
175
178
  */
176
179
  pkg: Record<string, any>;
177
180
  rundir: string;
178
- security: {
179
- domainWhiteList: string[];
180
- protocolWhiteList: string[];
181
- defaultMiddleware: string;
182
- csrf: any;
183
- ssrf: {
184
- ipBlackList: string[];
185
- ipExceptionList: string[];
186
- checkAddress?(ip: string): boolean;
187
- };
188
- xframe: {
189
- enable: boolean;
190
- value: 'SAMEORIGIN' | 'DENY' | 'ALLOW-FROM';
191
- };
192
- hsts: any;
193
- methodnoallow: {
194
- enable: boolean;
195
- };
196
- noopen: {
197
- enable: boolean;
198
- };
199
- xssProtection: any;
200
- csp: any;
201
- };
202
181
  siteFile: SiteFileMiddlewareOptions;
203
182
  meta: MetaMiddlewareOptions;
204
183
  notfound: NotFoundMiddlewareOptions;
@@ -6,4 +6,7 @@ require("@eggjs/development");
6
6
  require("@eggjs/jsonp");
7
7
  require("@eggjs/i18n");
8
8
  require("@eggjs/static");
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLHVCQUF1QjtBQUN2QiwwQkFBd0I7QUFDeEIsOEJBQTRCO0FBQzVCLHdCQUFzQjtBQUN0Qix1QkFBcUI7QUFDckIseUJBQXVCIn0=
9
+ require("@eggjs/security");
10
+ require("@eggjs/schedule");
11
+ require("@eggjs/session");
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLHVCQUF1QjtBQUN2QiwwQkFBd0I7QUFDeEIsOEJBQTRCO0FBQzVCLHdCQUFzQjtBQUN0Qix1QkFBcUI7QUFDckIseUJBQXVCO0FBQ3ZCLDJCQUF5QjtBQUN6QiwyQkFBeUI7QUFDekIsMEJBQXdCIn0=
@@ -16,7 +16,7 @@ export default {
16
16
  */
17
17
  session: {
18
18
  enable: true,
19
- package: 'egg-session',
19
+ package: '@eggjs/session',
20
20
  },
21
21
  /**
22
22
  * i18n
@@ -56,7 +56,7 @@ export default {
56
56
  */
57
57
  security: {
58
58
  enable: true,
59
- package: 'egg-security',
59
+ package: '@eggjs/security',
60
60
  },
61
61
  /**
62
62
  * local development helper
@@ -119,4 +119,4 @@ export default {
119
119
  package: 'egg-view',
120
120
  },
121
121
  };
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDIn0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGFBQWE7S0FDdkI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxFQUFFO1FBQ1QsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxvQkFBb0I7S0FDOUI7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxjQUFjO0tBQ3hCO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxVQUFVO0tBQ3BCO0NBQ0YsQ0FBQyJ9
@@ -9,6 +9,7 @@ export type { Helper as IHelper, };
9
9
  export * from './lib/egg.js';
10
10
  export * from './lib/types.js';
11
11
  export * from './lib/start.js';
12
+ export * from './lib/core/singleton.js';
12
13
  export * from './lib/error/index.js';
13
14
  export type { LoggerLevel, EggLogger, } from 'egg-logger';
14
15
  export * from './lib/core/httpclient.js';
package/dist/esm/index.js CHANGED
@@ -10,6 +10,7 @@ export { Helper, };
10
10
  export * from './lib/egg.js';
11
11
  export * from './lib/types.js';
12
12
  export * from './lib/start.js';
13
+ export * from './lib/core/singleton.js';
13
14
  // export errors
14
15
  export * from './lib/error/index.js';
15
16
  // export httpClients
@@ -68,4 +69,4 @@ export { BaseContextClass } from './lib/core/base_context_class.js';
68
69
  * @member {Boot} Egg#Boot
69
70
  */
70
71
  export { BaseHookClass as Boot } from './lib/core/base_hook_class.js';
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsUUFBUSxHQUdULE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxNQUFNLE1BQU0sd0JBQXdCLENBQUM7QUFFNUMsaUJBQWlCO0FBQ2pCLE9BQU8sRUFDTCxNQUFNLEdBQ1AsQ0FBQztBQU1GLGVBQWU7QUFDZixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsZ0JBQWdCO0FBQ2hCLGNBQWMsc0JBQXNCLENBQUM7QUFRckMscUJBQXFCO0FBQ3JCLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxjQUFjLGdCQUFnQixDQUFDO0FBRS9COzs7R0FHRztBQUNILE9BQU8sRUFDTCxRQUFRLElBQUksS0FBSyxHQUdsQixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5EOzs7R0FHRztBQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2Qzs7O0dBR0c7QUFFSDs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0U7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLGdCQUFnQixJQUFJLFVBQVUsR0FDL0IsQ0FBQztBQUVGOzs7R0FHRztBQUNILE9BQU8sRUFDTCxnQkFBZ0IsSUFBSSxPQUFPLEdBQzVCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxPQUFPLEVBQ0wsZ0JBQWdCLElBQUksWUFBWSxHQUNqQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEU7O0dBRUc7QUFDSCxPQUFPLEVBQUUsYUFBYSxJQUFJLElBQUksRUFBRSxNQUFNLCtCQUErQixDQUFDIn0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsUUFBUSxHQUdULE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxNQUFNLE1BQU0sd0JBQXdCLENBQUM7QUFFNUMsaUJBQWlCO0FBQ2pCLE9BQU8sRUFDTCxNQUFNLEdBQ1AsQ0FBQztBQU1GLGVBQWU7QUFDZixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxnQkFBZ0I7QUFDaEIsY0FBYyxzQkFBc0IsQ0FBQztBQVFyQyxxQkFBcUI7QUFDckIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGtDQUFrQyxDQUFDO0FBRWpEOzs7R0FHRztBQUNILGNBQWMsZ0JBQWdCLENBQUM7QUFFL0I7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLFFBQVEsSUFBSSxLQUFLLEdBR2xCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQ7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDOzs7R0FHRztBQUVIOzs7R0FHRztBQUVILE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRTs7O0dBR0c7QUFDSCxPQUFPLEVBQ0wsZ0JBQWdCLElBQUksVUFBVSxHQUMvQixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLGdCQUFnQixJQUFJLE9BQU8sR0FDNUIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE9BQU8sRUFDTCxnQkFBZ0IsSUFBSSxZQUFZLEdBQ2pDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRTs7R0FFRztBQUNILE9BQU8sRUFBRSxhQUFhLElBQUksSUFBSSxFQUFFLE1BQU0sK0JBQStCLENBQUMifQ==
@@ -1,14 +1,14 @@
1
- import type { EggApplicationCore } from '../egg.js';
2
- export type SingletonCreateMethod = (config: Record<string, any>, app: EggApplicationCore, clientName: string) => unknown | Promise<unknown>;
1
+ import type { EggCore } from '@eggjs/core';
2
+ export type SingletonCreateMethod = (config: Record<string, any>, app: EggCore, clientName: string) => unknown | Promise<unknown>;
3
3
  export interface SingletonOptions {
4
4
  name: string;
5
- app: EggApplicationCore;
5
+ app: EggCore;
6
6
  create: SingletonCreateMethod;
7
7
  }
8
- export declare class Singleton {
8
+ export declare class Singleton<T = any> {
9
9
  #private;
10
- readonly clients: Map<string, any>;
11
- readonly app: EggApplicationCore;
10
+ readonly clients: Map<string, T>;
11
+ readonly app: EggCore;
12
12
  readonly create: SingletonCreateMethod;
13
13
  readonly name: string;
14
14
  readonly options: Record<string, any>;
@@ -16,8 +16,14 @@ export declare class Singleton {
16
16
  init(): void | Promise<void>;
17
17
  initSync(): void;
18
18
  initAsync(): Promise<void>;
19
- get(id: string): any;
20
- getSingletonInstance(id: string): any;
21
- createInstance(config: Record<string, any>, clientName: string): unknown;
22
- createInstanceAsync(config: Record<string, any>, clientName: string): Promise<unknown>;
19
+ /**
20
+ * @deprecated please use `getSingletonInstance(id)` instead
21
+ */
22
+ get(id: string): NonNullable<T>;
23
+ /**
24
+ * Get singleton instance by id
25
+ */
26
+ getSingletonInstance(id: string): NonNullable<T>;
27
+ createInstance(config: Record<string, any>, clientName: string): T;
28
+ createInstanceAsync(config: Record<string, any>, clientName: string): Promise<T>;
23
29
  }
@@ -29,7 +29,7 @@ export class Singleton {
29
29
  this.#extendDynamicMethods(client);
30
30
  return;
31
31
  }
32
- // multi client, use app[name].getInstance(id)
32
+ // multi client, use app[name].getSingletonInstance(id)
33
33
  if (options.clients) {
34
34
  Object.keys(options.clients).forEach(id => {
35
35
  const client = this.createInstance(options.clients[id], id);
@@ -66,10 +66,15 @@ export class Singleton {
66
66
  #setClientToApp(client) {
67
67
  Reflect.set(this.app, this.name, client);
68
68
  }
69
+ /**
70
+ * @deprecated please use `getSingletonInstance(id)` instead
71
+ */
69
72
  get(id) {
70
73
  return this.clients.get(id);
71
74
  }
72
- // alias to `get(id)`
75
+ /**
76
+ * Get singleton instance by id
77
+ */
73
78
  getSingletonInstance(id) {
74
79
  return this.clients.get(id);
75
80
  }
@@ -110,4 +115,4 @@ export class Singleton {
110
115
  }
111
116
  }
112
117
  }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVk3QyxNQUFNLE9BQU8sU0FBUztJQUNYLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0lBQ2pDLEdBQUcsQ0FBcUI7SUFDeEIsTUFBTSxDQUF3QjtJQUM5QixJQUFJLENBQVM7SUFDYixPQUFPLENBQXNCO0lBRXRDLFlBQVksT0FBeUI7UUFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsZ0VBQWdFLENBQUMsQ0FBQztRQUN2RixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSwrREFBK0QsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGtFQUFrRSxDQUFDLENBQUM7UUFDM0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxtQkFBbUIsT0FBTyxDQUFDLElBQUksMkJBQTJCLENBQUMsQ0FBQztRQUNuRyxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMs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
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVk3QyxNQUFNLE9BQU8sU0FBUztJQUNYLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO0lBQy9CLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBd0I7SUFDOUIsSUFBSSxDQUFTO0lBQ2IsT0FBTyxDQUFzQjtJQUV0QyxZQUFZLE9BQXlCO1FBQ25DLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGdFQUFnRSxDQUFDLENBQUM7UUFDdkYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsK0RBQStELENBQUMsQ0FBQztRQUNyRixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxrRUFBa0UsQ0FBQyxDQUFDO1FBQzNGLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsbUJBQW1CLE9BQU8sQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUM7UUFDbkcsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENB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
@@ -296,5 +296,6 @@ declare module '@eggjs/core' {
296
296
  HttpClient: typeof HttpClient;
297
297
  get httpClient(): HttpClient;
298
298
  curl<T = any>(url: HttpClientRequestURL, options?: HttpClientRequestOptions): Promise<HttpClientResponse<T>>;
299
+ addSingleton(name: string, create: SingletonCreateMethod): void;
299
300
  }
300
301
  }
@@ -11,6 +11,9 @@ import '@eggjs/development';
11
11
  import '@eggjs/jsonp';
12
12
  import '@eggjs/i18n';
13
13
  import '@eggjs/static';
14
+ import '@eggjs/security';
15
+ import '@eggjs/schedule';
16
+ import '@eggjs/session';
14
17
  export type { EggAppInfo, } from '@eggjs/core';
15
18
  type IgnoreItem = string | RegExp | ((ctx: Context) => boolean);
16
19
  type IgnoreOrMatch = IgnoreItem | IgnoreItem[];
@@ -175,30 +178,6 @@ export interface EggAppConfig extends EggCoreAppConfig {
175
178
  */
176
179
  pkg: Record<string, any>;
177
180
  rundir: string;
178
- security: {
179
- domainWhiteList: string[];
180
- protocolWhiteList: string[];
181
- defaultMiddleware: string;
182
- csrf: any;
183
- ssrf: {
184
- ipBlackList: string[];
185
- ipExceptionList: string[];
186
- checkAddress?(ip: string): boolean;
187
- };
188
- xframe: {
189
- enable: boolean;
190
- value: 'SAMEORIGIN' | 'DENY' | 'ALLOW-FROM';
191
- };
192
- hsts: any;
193
- methodnoallow: {
194
- enable: boolean;
195
- };
196
- noopen: {
197
- enable: boolean;
198
- };
199
- xssProtection: any;
200
- csp: any;
201
- };
202
181
  siteFile: SiteFileMiddlewareOptions;
203
182
  meta: MetaMiddlewareOptions;
204
183
  notfound: NotFoundMiddlewareOptions;
@@ -4,4 +4,7 @@ import '@eggjs/development';
4
4
  import '@eggjs/jsonp';
5
5
  import '@eggjs/i18n';
6
6
  import '@eggjs/static';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSx1QkFBdUI7QUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sZUFBZSxDQUFDIn0=
7
+ import '@eggjs/security';
8
+ import '@eggjs/schedule';
9
+ import '@eggjs/session';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSx1QkFBdUI7QUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGdCQUFnQixDQUFDIn0=
package/dist/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "egg",
3
- "version": "4.0.1"
3
+ "version": "4.0.2"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "egg",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "engines": {
5
5
  "node": ">= 18.19.0"
6
6
  },
@@ -26,6 +26,8 @@
26
26
  "@eggjs/i18n": "^3.0.1",
27
27
  "@eggjs/jsonp": "^3.0.0",
28
28
  "@eggjs/schedule": "^5.0.2",
29
+ "@eggjs/security": "^4.0.0",
30
+ "@eggjs/session": "^4.0.0",
29
31
  "@eggjs/static": "^3.0.0",
30
32
  "@eggjs/utils": "^4.2.4",
31
33
  "@eggjs/watcher": "^4.0.3",
@@ -36,8 +38,6 @@
36
38
  "egg-logrotator": "^3.1.0",
37
39
  "egg-multipart": "^3.1.0",
38
40
  "egg-onerror": "^2.1.1",
39
- "egg-security": "^3.0.0",
40
- "egg-session": "^3.3.0",
41
41
  "egg-view": "^2.1.3",
42
42
  "extend2": "^4.0.0",
43
43
  "graceful": "^2.0.0",
@@ -17,7 +17,7 @@ export default {
17
17
  */
18
18
  session: {
19
19
  enable: true,
20
- package: 'egg-session',
20
+ package: '@eggjs/session',
21
21
  },
22
22
 
23
23
  /**
@@ -61,7 +61,7 @@ export default {
61
61
  */
62
62
  security: {
63
63
  enable: true,
64
- package: 'egg-security',
64
+ package: '@eggjs/security',
65
65
  },
66
66
 
67
67
  /**
package/src/index.ts CHANGED
@@ -23,6 +23,7 @@ export type {
23
23
  export * from './lib/egg.js';
24
24
  export * from './lib/types.js';
25
25
  export * from './lib/start.js';
26
+ export * from './lib/core/singleton.js';
26
27
 
27
28
  // export errors
28
29
  export * from './lib/error/index.js';
@@ -1,19 +1,19 @@
1
1
  import assert from 'node:assert';
2
2
  import { isAsyncFunction } from 'is-type-of';
3
- import type { EggApplicationCore } from '../egg.js';
3
+ import type { EggCore } from '@eggjs/core';
4
4
 
5
5
  export type SingletonCreateMethod =
6
- (config: Record<string, any>, app: EggApplicationCore, clientName: string) => unknown | Promise<unknown>;
6
+ (config: Record<string, any>, app: EggCore, clientName: string) => unknown | Promise<unknown>;
7
7
 
8
8
  export interface SingletonOptions {
9
9
  name: string;
10
- app: EggApplicationCore;
10
+ app: EggCore;
11
11
  create: SingletonCreateMethod;
12
12
  }
13
13
 
14
- export class Singleton {
15
- readonly clients = new Map<string, any>();
16
- readonly app: EggApplicationCore;
14
+ export class Singleton<T = any> {
15
+ readonly clients = new Map<string, T>();
16
+ readonly app: EggCore;
17
17
  readonly create: SingletonCreateMethod;
18
18
  readonly name: string;
19
19
  readonly options: Record<string, any>;
@@ -46,7 +46,7 @@ export class Singleton {
46
46
  return;
47
47
  }
48
48
 
49
- // multi client, use app[name].getInstance(id)
49
+ // multi client, use app[name].getSingletonInstance(id)
50
50
  if (options.clients) {
51
51
  Object.keys(options.clients).forEach(id => {
52
52
  const client = this.createInstance(options.clients[id], id);
@@ -91,13 +91,18 @@ export class Singleton {
91
91
  Reflect.set(this.app, this.name, client);
92
92
  }
93
93
 
94
+ /**
95
+ * @deprecated please use `getSingletonInstance(id)` instead
96
+ */
94
97
  get(id: string) {
95
- return this.clients.get(id);
98
+ return this.clients.get(id)!;
96
99
  }
97
100
 
98
- // alias to `get(id)`
101
+ /**
102
+ * Get singleton instance by id
103
+ */
99
104
  getSingletonInstance(id: string) {
100
- return this.clients.get(id);
105
+ return this.clients.get(id)!;
101
106
  }
102
107
 
103
108
  createInstance(config: Record<string, any>, clientName: string) {
@@ -109,7 +114,7 @@ export class Singleton {
109
114
  ...this.options.default,
110
115
  ...config,
111
116
  };
112
- return (this.create as SingletonCreateMethod)(config, this.app, clientName);
117
+ return (this.create as SingletonCreateMethod)(config, this.app, clientName) as T;
113
118
  }
114
119
 
115
120
  async createInstanceAsync(config: Record<string, any>, clientName: string) {
@@ -118,7 +123,7 @@ export class Singleton {
118
123
  ...this.options.default,
119
124
  ...config,
120
125
  };
121
- return await this.create(config, this.app, clientName);
126
+ return await this.create(config, this.app, clientName) as T;
122
127
  }
123
128
 
124
129
  #extendDynamicMethods(client: any) {
package/src/lib/egg.ts CHANGED
@@ -702,5 +702,6 @@ declare module '@eggjs/core' {
702
702
  HttpClient: typeof HttpClient;
703
703
  get httpClient(): HttpClient;
704
704
  curl<T = any>(url: HttpClientRequestURL, options?: HttpClientRequestOptions): Promise<HttpClientResponse<T>>;
705
+ addSingleton(name: string, create: SingletonCreateMethod): void;
705
706
  }
706
707
  }
package/src/lib/types.ts CHANGED
@@ -22,12 +22,14 @@ import '@eggjs/development';
22
22
  import '@eggjs/jsonp';
23
23
  import '@eggjs/i18n';
24
24
  import '@eggjs/static';
25
+ import '@eggjs/security';
26
+ import '@eggjs/schedule';
27
+ import '@eggjs/session';
25
28
 
26
29
  export type {
27
30
  EggAppInfo,
28
31
  } from '@eggjs/core';
29
32
 
30
-
31
33
  type IgnoreItem = string | RegExp | ((ctx: Context) => boolean);
32
34
  type IgnoreOrMatch = IgnoreItem | IgnoreItem[];
33
35
 
@@ -214,27 +216,6 @@ export interface EggAppConfig extends EggCoreAppConfig {
214
216
 
215
217
  rundir: string;
216
218
 
217
- security: {
218
- domainWhiteList: string[];
219
- protocolWhiteList: string[];
220
- defaultMiddleware: string;
221
- csrf: any;
222
- ssrf: {
223
- ipBlackList: string[];
224
- ipExceptionList: string[];
225
- checkAddress?(ip: string): boolean;
226
- };
227
- xframe: {
228
- enable: boolean;
229
- value: 'SAMEORIGIN' | 'DENY' | 'ALLOW-FROM';
230
- };
231
- hsts: any;
232
- methodnoallow: { enable: boolean };
233
- noopen: { enable: boolean; }
234
- xssProtection: any;
235
- csp: any;
236
- };
237
-
238
219
  siteFile: SiteFileMiddlewareOptions;
239
220
  meta: MetaMiddlewareOptions;
240
221
  notfound: NotFoundMiddlewareOptions;