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.
- package/dist/commonjs/config/plugin.js +3 -3
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.js +2 -1
- package/dist/commonjs/lib/core/singleton.d.ts +16 -10
- package/dist/commonjs/lib/core/singleton.js +8 -3
- package/dist/commonjs/lib/egg.d.ts +1 -0
- package/dist/commonjs/lib/types.d.ts +3 -24
- package/dist/commonjs/lib/types.js +4 -1
- package/dist/esm/config/plugin.js +3 -3
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/lib/core/singleton.d.ts +16 -10
- package/dist/esm/lib/core/singleton.js +8 -3
- package/dist/esm/lib/egg.d.ts +1 -0
- package/dist/esm/lib/types.d.ts +3 -24
- package/dist/esm/lib/types.js +4 -1
- package/dist/package.json +1 -1
- package/package.json +3 -3
- package/src/config/plugin.ts +2 -2
- package/src/index.ts +1 -0
- package/src/lib/core/singleton.ts +17 -12
- package/src/lib/egg.ts +1 -0
- package/src/lib/types.ts +3 -22
|
@@ -18,7 +18,7 @@ exports.default = {
|
|
|
18
18
|
*/
|
|
19
19
|
session: {
|
|
20
20
|
enable: true,
|
|
21
|
-
package: '
|
|
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: '
|
|
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,
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGFBQWE7S0FDdkI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxFQUFFO1FBQ1QsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxvQkFBb0I7S0FDOUI7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxjQUFjO0tBQ3hCO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxVQUFVO0tBQ3BCO0NBQ0YsQ0FBQyJ9
|
package/dist/commonjs/index.d.ts
CHANGED
|
@@ -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/commonjs/index.js
CHANGED
|
@@ -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,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDRFQUFvRTtBQWlGOUMsMkZBakZiLHdDQUFnQixPQWlGTztBQVFWLHdGQXpGYix3Q0FBZ0IsT0F5Rkk7QUFRUCw2RkFqR2Isd0NBQWdCLE9BaUdTO0FBaEdsQyw2Q0FJd0I7QUEwQ1Ysc0ZBN0NaLG1CQUFRLE9BNkNTO0FBekNuQix1RUFBNEM7QUFJMUMsaUJBSkssbUJBQU0sQ0FJTDtBQU9SLGVBQWU7QUFDZiwrQ0FBNkI7QUFDN0IsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwwREFBd0M7QUFFeEMsZ0JBQWdCO0FBQ2hCLHVEQUFxQztBQVFyQyxxQkFBcUI7QUFDckIsMkRBQXlDO0FBQ3pDLG1FQUFpRDtBQUVqRDs7O0dBR0c7QUFDSCxpREFBK0I7QUFZL0I7OztHQUdHO0FBQ0gsdURBQW1EO0FBQTFDLDZHQUFBLFdBQVcsT0FBQTtBQUVwQjs7O0dBR0c7QUFDSCwyQ0FBdUM7QUFBOUIsaUdBQUEsS0FBSyxPQUFBO0FBRWQ7OztHQUdHO0FBRUg7OztHQUdHO0FBRUgsa0RBQTJFO0FBQWxFLDJHQUFBLGVBQWUsT0FBQTtBQUFFLDZHQUFBLGlCQUFpQixPQUFBO0FBMEIzQzs7O0dBR0c7QUFDSCwwRUFBb0U7QUFBM0QseUhBQUEsZ0JBQWdCLE9BQUE7QUFFekI7O0dBRUc7QUFDSCxvRUFBc0U7QUFBN0QsMEdBQUEsYUFBYSxPQUFRIn0=
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export type SingletonCreateMethod = (config: Record<string, any>, app:
|
|
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:
|
|
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,
|
|
11
|
-
readonly app:
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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].
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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: '
|
|
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: '
|
|
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,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGFBQWE7S0FDdkI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxFQUFFO1FBQ1QsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxvQkFBb0I7S0FDOUI7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxjQUFjO0tBQ3hCO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxVQUFVO0tBQ3BCO0NBQ0YsQ0FBQyJ9
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -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,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsUUFBUSxHQUdULE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxNQUFNLE1BQU0sd0JBQXdCLENBQUM7QUFFNUMsaUJBQWlCO0FBQ2pCLE9BQU8sRUFDTCxNQUFNLEdBQ1AsQ0FBQztBQU1GLGVBQWU7QUFDZixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxnQkFBZ0I7QUFDaEIsY0FBYyxzQkFBc0IsQ0FBQztBQVFyQyxxQkFBcUI7QUFDckIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGtDQUFrQyxDQUFDO0FBRWpEOzs7R0FHRztBQUNILGNBQWMsZ0JBQWdCLENBQUM7QUFFL0I7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLFFBQVEsSUFBSSxLQUFLLEdBR2xCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQ7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDOzs7R0FHRztBQUVIOzs7R0FHRztBQUVILE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRTs7O0dBR0c7QUFDSCxPQUFPLEVBQ0wsZ0JBQWdCLElBQUksVUFBVSxHQUMvQixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLGdCQUFnQixJQUFJLE9BQU8sR0FDNUIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE9BQU8sRUFDTCxnQkFBZ0IsSUFBSSxZQUFZLEdBQ2pDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRTs7R0FFRztBQUNILE9BQU8sRUFBRSxhQUFhLElBQUksSUFBSSxFQUFFLE1BQU0sK0JBQStCLENBQUMifQ==
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export type SingletonCreateMethod = (config: Record<string, any>, app:
|
|
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:
|
|
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,
|
|
11
|
-
readonly app:
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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].
|
|
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
|
-
|
|
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,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVk3QyxNQUFNLE9BQU8sU0FBUztJQUNYLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO0lBQy9CLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBd0I7SUFDOUIsSUFBSSxDQUFTO0lBQ2IsT0FBTyxDQUFzQjtJQUV0QyxZQUFZLE9BQXlCO1FBQ25DLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGdFQUFnRSxDQUFDLENBQUM7UUFDdkYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsK0RBQStELENBQUMsQ0FBQztRQUNyRixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxrRUFBa0UsQ0FBQyxDQUFDO1FBQzNGLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsbUJBQW1CLE9BQU8sQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUM7UUFDbkcsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENB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
|
package/dist/esm/lib/egg.d.ts
CHANGED
|
@@ -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
|
}
|
package/dist/esm/lib/types.d.ts
CHANGED
|
@@ -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;
|
package/dist/esm/lib/types.js
CHANGED
|
@@ -4,4 +4,7 @@ import '@eggjs/development';
|
|
|
4
4
|
import '@eggjs/jsonp';
|
|
5
5
|
import '@eggjs/i18n';
|
|
6
6
|
import '@eggjs/static';
|
|
7
|
-
|
|
7
|
+
import '@eggjs/security';
|
|
8
|
+
import '@eggjs/schedule';
|
|
9
|
+
import '@eggjs/session';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSx1QkFBdUI7QUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGdCQUFnQixDQUFDIn0=
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "egg",
|
|
3
|
-
"version": "4.0.
|
|
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",
|
package/src/config/plugin.ts
CHANGED
|
@@ -17,7 +17,7 @@ export default {
|
|
|
17
17
|
*/
|
|
18
18
|
session: {
|
|
19
19
|
enable: true,
|
|
20
|
-
package: '
|
|
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: '
|
|
64
|
+
package: '@eggjs/security',
|
|
65
65
|
},
|
|
66
66
|
|
|
67
67
|
/**
|
package/src/index.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
2
|
import { isAsyncFunction } from 'is-type-of';
|
|
3
|
-
import type {
|
|
3
|
+
import type { EggCore } from '@eggjs/core';
|
|
4
4
|
|
|
5
5
|
export type SingletonCreateMethod =
|
|
6
|
-
(config: Record<string, any>, app:
|
|
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:
|
|
10
|
+
app: EggCore;
|
|
11
11
|
create: SingletonCreateMethod;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export class Singleton {
|
|
15
|
-
readonly clients = new Map<string,
|
|
16
|
-
readonly app:
|
|
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].
|
|
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
|
-
|
|
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;
|