@eggjs/session 4.0.1 → 5.0.0-beta.17

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 (48) hide show
  1. package/README.md +57 -61
  2. package/dist/app/extend/application.d.ts +37 -0
  3. package/dist/app/extend/application.js +48 -0
  4. package/dist/app/middleware/session.d.ts +2 -0
  5. package/dist/app/middleware/session.js +7 -0
  6. package/dist/app.d.ts +10 -0
  7. package/dist/app.js +27 -0
  8. package/dist/config/config.default.d.ts +209 -0
  9. package/dist/config/config.default.js +14 -0
  10. package/dist/index.d.ts +2 -0
  11. package/dist/index.js +4 -0
  12. package/dist/types.d.ts +13 -0
  13. package/dist/types.js +1 -0
  14. package/package.json +44 -65
  15. package/dist/commonjs/app/extend/application.d.ts +0 -33
  16. package/dist/commonjs/app/extend/application.js +0 -55
  17. package/dist/commonjs/app/middleware/session.d.ts +0 -2
  18. package/dist/commonjs/app/middleware/session.js +0 -5
  19. package/dist/commonjs/app.d.ts +0 -6
  20. package/dist/commonjs/app.js +0 -29
  21. package/dist/commonjs/config/config.default.d.ts +0 -206
  22. package/dist/commonjs/config/config.default.js +0 -20
  23. package/dist/commonjs/index.d.ts +0 -2
  24. package/dist/commonjs/index.js +0 -19
  25. package/dist/commonjs/package.json +0 -3
  26. package/dist/commonjs/types.d.ts +0 -11
  27. package/dist/commonjs/types.js +0 -3
  28. package/dist/esm/app/extend/application.d.ts +0 -33
  29. package/dist/esm/app/extend/application.js +0 -49
  30. package/dist/esm/app/middleware/session.d.ts +0 -2
  31. package/dist/esm/app/middleware/session.js +0 -3
  32. package/dist/esm/app.d.ts +0 -6
  33. package/dist/esm/app.js +0 -26
  34. package/dist/esm/config/config.default.d.ts +0 -206
  35. package/dist/esm/config/config.default.js +0 -14
  36. package/dist/esm/index.d.ts +0 -2
  37. package/dist/esm/index.js +0 -3
  38. package/dist/esm/package.json +0 -3
  39. package/dist/esm/types.d.ts +0 -11
  40. package/dist/esm/types.js +0 -2
  41. package/dist/package.json +0 -4
  42. package/src/app/extend/application.ts +0 -59
  43. package/src/app/middleware/session.ts +0 -3
  44. package/src/app.ts +0 -30
  45. package/src/config/config.default.ts +0 -17
  46. package/src/index.ts +0 -3
  47. package/src/types.ts +0 -15
  48. package/src/typings/index.d.ts +0 -4
package/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # @eggjs/session
2
2
 
3
3
  [![NPM version][npm-image]][npm-url]
4
- [![Node.js CI](https://github.com/eggjs/session/actions/workflows/nodejs.yml/badge.svg)](https://github.com/eggjs/session/actions/workflows/nodejs.yml)
5
- [![Test coverage][codecov-image]][codecov-url]
6
4
  [![Known Vulnerabilities][snyk-image]][snyk-url]
7
5
  [![npm download][download-image]][download-url]
8
6
  [![Node.js Version](https://img.shields.io/node/v/@eggjs/session.svg?style=flat)](https://nodejs.org/en/download/)
@@ -11,8 +9,6 @@
11
9
 
12
10
  [npm-image]: https://img.shields.io/npm/v/@eggjs/session.svg?style=flat-square
13
11
  [npm-url]: https://npmjs.org/package/@eggjs/session
14
- [codecov-image]: https://codecov.io/gh/eggjs/session/branch/master/graph/badge.svg
15
- [codecov-url]: https://codecov.io/gh/eggjs/session
16
12
  [snyk-image]: https://snyk.io/test/npm/@eggjs/session/badge.svg?style=flat-square
17
13
  [snyk-url]: https://snyk.io/test/npm/@eggjs/session
18
14
  [download-image]: https://img.shields.io/npm/dm/@eggjs/session.svg?style=flat-square
@@ -41,69 +37,69 @@ egg-session support external store, you can store your sessions in redis, memcac
41
37
 
42
38
  For example, if you want to store session in redis, you must:
43
39
 
44
- 1. Dependent [@eggjs/redis](https://github.com/eggjs/redis)
40
+ 1. Dependent [@eggjs/redis](https://github.com/eggjs/egg/tree/next/plugins/redis)
45
41
 
46
- ```bash
47
- npm i --save @eggjs/redis
48
- ```
42
+ ```bash
43
+ npm i --save @eggjs/redis
44
+ ```
49
45
 
50
46
  2. Import `@eggjs/redis` as a plugin and set the configuration
51
47
 
52
- ```js
53
- // config/plugin.js
54
- exports.redis = {
55
- enable: true,
56
- package: '@eggjs/redis',
57
- };
58
- ```
48
+ ```js
49
+ // config/plugin.js
50
+ exports.redis = {
51
+ enable: true,
52
+ package: '@eggjs/redis',
53
+ };
54
+ ```
59
55
 
60
- ```js
61
- // config/config.default.js
62
- exports.redis = {
63
- // your redis configurations
64
- };
65
- ```
56
+ ```js
57
+ // config/config.default.js
58
+ exports.redis = {
59
+ // your redis configurations
60
+ };
61
+ ```
66
62
 
67
63
  3. Implement a session store with redis
68
64
 
69
- ```js
70
- // app.js
71
-
72
- module.exports = app => {
73
- // set redis session store
74
- // session store must have 3 methods
75
- // define sessionStore in `app.js` so you can access `app.redis`
76
- app.sessionStore = {
77
- async get(key) {
78
- const res = await app.redis.get(key);
79
- if (!res) return null;
80
- return JSON.parse(res);
81
- },
82
-
83
- async set(key, value, maxAge) {
84
- // maxAge not present means session cookies
85
- // we can't exactly know the maxAge and just set an appropriate value like one day
86
- if (!maxAge) maxAge = 24 * 60 * 60 * 1000;
87
- value = JSON.stringify(value);
88
- await app.redis.set(key, value, 'PX', maxAge);
89
- },
90
-
91
- async destroy(key) {
92
- await app.redis.del(key);
93
- },
94
- };
95
-
96
- // session store can be a session store class
97
- // app.sessionStore = class Store {
98
- // constructor(app) {
99
- // this.app = app;
100
- // }
101
- // async get() {}
102
- // async set() {}
103
- // async destroy() {}
104
- // };
65
+ ```js
66
+ // app.js
67
+
68
+ module.exports = app => {
69
+ // set redis session store
70
+ // session store must have 3 methods
71
+ // define sessionStore in `app.js` so you can access `app.redis`
72
+ app.sessionStore = {
73
+ async get(key) {
74
+ const res = await app.redis.get(key);
75
+ if (!res) return null;
76
+ return JSON.parse(res);
77
+ },
78
+
79
+ async set(key, value, maxAge) {
80
+ // maxAge not present means session cookies
81
+ // we can't exactly know the maxAge and just set an appropriate value like one day
82
+ if (!maxAge) maxAge = 24 * 60 * 60 * 1000;
83
+ value = JSON.stringify(value);
84
+ await app.redis.set(key, value, 'PX', maxAge);
85
+ },
86
+
87
+ async destroy(key) {
88
+ await app.redis.del(key);
89
+ },
105
90
  };
106
- ```
91
+
92
+ // session store can be a session store class
93
+ // app.sessionStore = class Store {
94
+ // constructor(app) {
95
+ // this.app = app;
96
+ // }
97
+ // async get() {}
98
+ // async set() {}
99
+ // async destroy() {}
100
+ // };
101
+ };
102
+ ```
107
103
 
108
104
  Once you use external session store, session is strong dependent on your external store, you can't access session if your external store is down. **Use external session stores only if necessary, avoid use session as a cache, keep session lean and stored by cookie!**
109
105
 
@@ -111,13 +107,13 @@ Once you use external session store, session is strong dependent on your externa
111
107
 
112
108
  Support all configurations in [koa-session](https://github.com/koajs/session).
113
109
 
114
- * logValue
110
+ - logValue
115
111
 
116
112
  ```bash
117
113
  Support not to print the session value when session event trigger log. Default to be true.
118
114
  ```
119
115
 
120
- [View the default configurations](https://github.com/eggjs/egg-session/blob/master/config/config.default.js)
116
+ [View the default configurations](https://github.com/eggjs/egg/tree/next/plugins/session/src/config/config.default.ts)
121
117
 
122
118
  ## Questions & Suggestions
123
119
 
@@ -129,6 +125,6 @@ Please open an issue [here](https://github.com/eggjs/egg/issues).
129
125
 
130
126
  ## Contributors
131
127
 
132
- [![Contributors](https://contrib.rocks/image?repo=eggjs/session)](https://github.com/eggjs/session/graphs/contributors)
128
+ [![Contributors](https://contrib.rocks/image?repo=eggjs/egg)](https://github.com/eggjs/egg/graphs/contributors)
133
129
 
134
130
  Made with [contributors-img](https://contrib.rocks).
@@ -0,0 +1,37 @@
1
+ import { SessionConfig } from "../../config/config.default.js";
2
+ import { Application } from "egg";
3
+
4
+ //#region src/app/extend/application.d.ts
5
+ type SessionStore = Required<SessionConfig>['store'];
6
+ type SessionStoreOrAppSessionStoreClass = SessionStore | {
7
+ new (app: Application): SessionStore;
8
+ };
9
+ declare class SessionApplication extends Application {
10
+ /**
11
+ * set session external store
12
+ *
13
+ * ```js
14
+ * app.sessionStore = {
15
+ * get(key): Promise<unknown>,
16
+ * set(key, data): Promise<void>,
17
+ * destroy(key): Promise<void>,
18
+ * };
19
+ *
20
+ * app.sessionStore = class SessionStore {
21
+ * constructor(app) {
22
+ * }
23
+ * get(key): Promise<unknown>,
24
+ * set(key, data): Promise<void>,
25
+ * destroy(key): Promise<void>,
26
+ * }
27
+ * ```
28
+ * @param {Class|Object} store session store class or instance
29
+ */
30
+ set sessionStore(store: SessionStoreOrAppSessionStoreClass | null | undefined);
31
+ /**
32
+ * get sessionStore instance
33
+ */
34
+ get sessionStore(): SessionStore | undefined;
35
+ }
36
+ //#endregion
37
+ export { SessionStore, SessionStoreOrAppSessionStoreClass, SessionApplication as default };
@@ -0,0 +1,48 @@
1
+ import assert from "node:assert";
2
+ import { Application } from "egg";
3
+
4
+ //#region src/app/extend/application.ts
5
+ var SessionApplication = class extends Application {
6
+ /**
7
+ * set session external store
8
+ *
9
+ * ```js
10
+ * app.sessionStore = {
11
+ * get(key): Promise<unknown>,
12
+ * set(key, data): Promise<void>,
13
+ * destroy(key): Promise<void>,
14
+ * };
15
+ *
16
+ * app.sessionStore = class SessionStore {
17
+ * constructor(app) {
18
+ * }
19
+ * get(key): Promise<unknown>,
20
+ * set(key, data): Promise<void>,
21
+ * destroy(key): Promise<void>,
22
+ * }
23
+ * ```
24
+ * @param {Class|Object} store session store class or instance
25
+ */
26
+ set sessionStore(store) {
27
+ if (this.config.session.store && this.config.env !== "unittest") this.coreLogger.warn("[@eggjs/session] sessionStore already exists and will be overwrite");
28
+ if (!store) {
29
+ this.config.session.store = void 0;
30
+ this.coreLogger.info("[@eggjs/session] sessionStore is disabled");
31
+ return;
32
+ }
33
+ if (typeof store === "function") store = new store(this);
34
+ assert(typeof store.get === "function", "store.get must be function");
35
+ assert(typeof store.set === "function", "store.set must be function");
36
+ assert(typeof store.destroy === "function", "store.destroy must be function");
37
+ this.config.session.store = store;
38
+ }
39
+ /**
40
+ * get sessionStore instance
41
+ */
42
+ get sessionStore() {
43
+ return this.config.session.store;
44
+ }
45
+ };
46
+
47
+ //#endregion
48
+ export { SessionApplication as default };
@@ -0,0 +1,2 @@
1
+ import { createSession } from "koa-session";
2
+ export { createSession as default };
@@ -0,0 +1,7 @@
1
+ import { createSession } from "koa-session";
2
+
3
+ //#region src/app/middleware/session.ts
4
+ var session_default = createSession;
5
+
6
+ //#endregion
7
+ export { session_default as default };
package/dist/app.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { Application, ILifecycleBoot } from "egg";
2
+
3
+ //#region src/app.d.ts
4
+ declare class AppBoot implements ILifecycleBoot {
5
+ private readonly app;
6
+ constructor(app: Application);
7
+ configWillLoad(): void;
8
+ }
9
+ //#endregion
10
+ export { AppBoot as default };
package/dist/app.js ADDED
@@ -0,0 +1,27 @@
1
+ import { SessionConfig } from "./config/config.default.js";
2
+
3
+ //#region src/app.ts
4
+ var AppBoot = class {
5
+ app;
6
+ constructor(app) {
7
+ this.app = app;
8
+ }
9
+ configWillLoad() {
10
+ const app = this.app;
11
+ SessionConfig.parse(app.config.session);
12
+ if (!app.config.session.httpOnly) app.coreLogger.warn("[@eggjs/session]: please set `config.session.httpOnly` to true. It is very dangerous if session can read by client JavaScript.");
13
+ app.config.coreMiddleware.push("session");
14
+ app.on("session:missed", ({ ctx, key }) => {
15
+ ctx.coreLogger.warn("[session][missed] key(%s)", key);
16
+ });
17
+ app.on("session:expired", ({ ctx, key, value }) => {
18
+ ctx.coreLogger.warn("[session][expired] key(%s) value(%j)", key, app.config.session.logValue ? value : "");
19
+ });
20
+ app.on("session:invalid", ({ ctx, key, value }) => {
21
+ ctx.coreLogger.warn("[session][invalid] key(%s) value(%j)", key, app.config.session.logValue ? value : "");
22
+ });
23
+ }
24
+ };
25
+
26
+ //#endregion
27
+ export { AppBoot as default };
@@ -0,0 +1,209 @@
1
+ import z from "zod";
2
+
3
+ //#region src/config/config.default.d.ts
4
+ declare const SessionConfig: z.ZodObject<{
5
+ key: z.ZodDefault<z.ZodString>;
6
+ maxAge: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<"session">]>>;
7
+ autoCommit: z.ZodDefault<z.ZodBoolean>;
8
+ overwrite: z.ZodDefault<z.ZodBoolean>;
9
+ httpOnly: z.ZodDefault<z.ZodBoolean>;
10
+ signed: z.ZodDefault<z.ZodBoolean>;
11
+ rolling: z.ZodDefault<z.ZodBoolean>;
12
+ renew: z.ZodDefault<z.ZodBoolean>;
13
+ secure: z.ZodOptional<z.ZodBoolean>;
14
+ sameSite: z.ZodOptional<z.ZodString>;
15
+ externalKey: z.ZodOptional<z.ZodObject<{
16
+ get: z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodUnknown>, z.ZodString>;
17
+ set: z.ZodFunction<z.ZodTuple<[z.ZodAny, z.ZodString], z.ZodUnknown>, z.ZodVoid>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ set: (args_0: any, args_1: string, ...args: unknown[]) => void;
20
+ get: (args_0: any, ...args: unknown[]) => string;
21
+ }, {
22
+ set: (args_0: any, args_1: string, ...args: unknown[]) => void;
23
+ get: (args_0: any, ...args: unknown[]) => string;
24
+ }>>;
25
+ store: z.ZodOptional<z.ZodObject<{
26
+ get: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodNumber, z.ZodObject<{
27
+ rolling: z.ZodBoolean;
28
+ ctx: z.ZodAny;
29
+ }, "strip", z.ZodTypeAny, {
30
+ rolling: boolean;
31
+ ctx?: any;
32
+ }, {
33
+ rolling: boolean;
34
+ ctx?: any;
35
+ }>], z.ZodUnknown>, z.ZodPromise<z.ZodAny>>;
36
+ set: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodAny, z.ZodNumber, z.ZodObject<{
37
+ rolling: z.ZodBoolean;
38
+ changed: z.ZodBoolean;
39
+ ctx: z.ZodAny;
40
+ }, "strip", z.ZodTypeAny, {
41
+ rolling: boolean;
42
+ changed: boolean;
43
+ ctx?: any;
44
+ }, {
45
+ rolling: boolean;
46
+ changed: boolean;
47
+ ctx?: any;
48
+ }>], z.ZodUnknown>, z.ZodPromise<z.ZodVoid>>;
49
+ destroy: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodObject<{
50
+ ctx: z.ZodAny;
51
+ }, "strip", z.ZodTypeAny, {
52
+ ctx?: any;
53
+ }, {
54
+ ctx?: any;
55
+ }>], z.ZodUnknown>, z.ZodPromise<z.ZodVoid>>;
56
+ }, "strip", z.ZodTypeAny, {
57
+ set: (args_0: string, args_1: any, args_2: number, args_3: {
58
+ rolling: boolean;
59
+ changed: boolean;
60
+ ctx?: any;
61
+ }, ...args: unknown[]) => Promise<void>;
62
+ get: (args_0: string, args_1: number, args_2: {
63
+ rolling: boolean;
64
+ ctx?: any;
65
+ }, ...args: unknown[]) => Promise<any>;
66
+ destroy: (args_0: string, args_1: {
67
+ ctx?: any;
68
+ }, ...args: unknown[]) => Promise<void>;
69
+ }, {
70
+ set: (args_0: string, args_1: any, args_2: number, args_3: {
71
+ rolling: boolean;
72
+ changed: boolean;
73
+ ctx?: any;
74
+ }, ...args: unknown[]) => Promise<void>;
75
+ get: (args_0: string, args_1: number, args_2: {
76
+ rolling: boolean;
77
+ ctx?: any;
78
+ }, ...args: unknown[]) => Promise<any>;
79
+ destroy: (args_0: string, args_1: {
80
+ ctx?: any;
81
+ }, ...args: unknown[]) => Promise<void>;
82
+ }>>;
83
+ ContextStore: z.ZodOptional<z.ZodAny>;
84
+ encode: z.ZodDefault<z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodUnknown>, z.ZodString>>>;
85
+ decode: z.ZodDefault<z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodAny>>;
86
+ genid: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodUnknown>, z.ZodString>>;
87
+ prefix: z.ZodOptional<z.ZodString>;
88
+ valid: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodAny, z.ZodAny], z.ZodUnknown>, z.ZodAny>>;
89
+ beforeSave: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodAny, z.ZodAny], z.ZodUnknown>, z.ZodVoid>>;
90
+ } & {
91
+ logValue: z.ZodDefault<z.ZodBoolean>;
92
+ }, "strip", z.ZodTypeAny, {
93
+ logValue: boolean;
94
+ key: string;
95
+ autoCommit: boolean;
96
+ overwrite: boolean;
97
+ httpOnly: boolean;
98
+ signed: boolean;
99
+ rolling: boolean;
100
+ renew: boolean;
101
+ encode: (args_0: any, ...args: unknown[]) => string;
102
+ decode: (args_0: string, ...args: unknown[]) => any;
103
+ maxAge?: number | "session" | undefined;
104
+ secure?: boolean | undefined;
105
+ sameSite?: string | undefined;
106
+ externalKey?: {
107
+ set: (args_0: any, args_1: string, ...args: unknown[]) => void;
108
+ get: (args_0: any, ...args: unknown[]) => string;
109
+ } | undefined;
110
+ store?: {
111
+ set: (args_0: string, args_1: any, args_2: number, args_3: {
112
+ rolling: boolean;
113
+ changed: boolean;
114
+ ctx?: any;
115
+ }, ...args: unknown[]) => Promise<void>;
116
+ get: (args_0: string, args_1: number, args_2: {
117
+ rolling: boolean;
118
+ ctx?: any;
119
+ }, ...args: unknown[]) => Promise<any>;
120
+ destroy: (args_0: string, args_1: {
121
+ ctx?: any;
122
+ }, ...args: unknown[]) => Promise<void>;
123
+ } | undefined;
124
+ ContextStore?: any;
125
+ genid?: ((args_0: any, ...args: unknown[]) => string) | undefined;
126
+ prefix?: string | undefined;
127
+ valid?: ((args_0: any, args_1: any, ...args: unknown[]) => any) | undefined;
128
+ beforeSave?: ((args_0: any, args_1: any, ...args: unknown[]) => void) | undefined;
129
+ }, {
130
+ logValue?: boolean | undefined;
131
+ key?: string | undefined;
132
+ maxAge?: number | "session" | undefined;
133
+ autoCommit?: boolean | undefined;
134
+ overwrite?: boolean | undefined;
135
+ httpOnly?: boolean | undefined;
136
+ signed?: boolean | undefined;
137
+ rolling?: boolean | undefined;
138
+ renew?: boolean | undefined;
139
+ secure?: boolean | undefined;
140
+ sameSite?: string | undefined;
141
+ externalKey?: {
142
+ set: (args_0: any, args_1: string, ...args: unknown[]) => void;
143
+ get: (args_0: any, ...args: unknown[]) => string;
144
+ } | undefined;
145
+ store?: {
146
+ set: (args_0: string, args_1: any, args_2: number, args_3: {
147
+ rolling: boolean;
148
+ changed: boolean;
149
+ ctx?: any;
150
+ }, ...args: unknown[]) => Promise<void>;
151
+ get: (args_0: string, args_1: number, args_2: {
152
+ rolling: boolean;
153
+ ctx?: any;
154
+ }, ...args: unknown[]) => Promise<any>;
155
+ destroy: (args_0: string, args_1: {
156
+ ctx?: any;
157
+ }, ...args: unknown[]) => Promise<void>;
158
+ } | undefined;
159
+ ContextStore?: any;
160
+ encode?: ((args_0: any, ...args: unknown[]) => string) | undefined;
161
+ decode?: ((args_0: string, ...args: unknown[]) => any) | undefined;
162
+ genid?: ((args_0: any, ...args: unknown[]) => string) | undefined;
163
+ prefix?: string | undefined;
164
+ valid?: ((args_0: any, args_1: any, ...args: unknown[]) => any) | undefined;
165
+ beforeSave?: ((args_0: any, args_1: any, ...args: unknown[]) => void) | undefined;
166
+ }>;
167
+ type SessionConfig = z.infer<typeof SessionConfig>;
168
+ declare const _default: {
169
+ session: {
170
+ logValue: boolean;
171
+ key: string;
172
+ autoCommit: boolean;
173
+ overwrite: boolean;
174
+ httpOnly: boolean;
175
+ signed: boolean;
176
+ rolling: boolean;
177
+ renew: boolean;
178
+ encode: (args_0: any, ...args: unknown[]) => string;
179
+ decode: (args_0: string, ...args: unknown[]) => any;
180
+ maxAge?: number | "session" | undefined;
181
+ secure?: boolean | undefined;
182
+ sameSite?: string | undefined;
183
+ externalKey?: {
184
+ set: (args_0: any, args_1: string, ...args: unknown[]) => void;
185
+ get: (args_0: any, ...args: unknown[]) => string;
186
+ } | undefined;
187
+ store?: {
188
+ set: (args_0: string, args_1: any, args_2: number, args_3: {
189
+ rolling: boolean;
190
+ changed: boolean;
191
+ ctx?: any;
192
+ }, ...args: unknown[]) => Promise<void>;
193
+ get: (args_0: string, args_1: number, args_2: {
194
+ rolling: boolean;
195
+ ctx?: any;
196
+ }, ...args: unknown[]) => Promise<any>;
197
+ destroy: (args_0: string, args_1: {
198
+ ctx?: any;
199
+ }, ...args: unknown[]) => Promise<void>;
200
+ } | undefined;
201
+ ContextStore?: any;
202
+ genid?: ((args_0: any, ...args: unknown[]) => string) | undefined;
203
+ prefix?: string | undefined;
204
+ valid?: ((args_0: any, args_1: any, ...args: unknown[]) => any) | undefined;
205
+ beforeSave?: ((args_0: any, args_1: any, ...args: unknown[]) => void) | undefined;
206
+ };
207
+ };
208
+ //#endregion
209
+ export { SessionConfig, _default as default };
@@ -0,0 +1,14 @@
1
+ import z from "zod";
2
+ import { SessionOptions } from "koa-session";
3
+
4
+ //#region src/config/config.default.ts
5
+ const SessionConfig = SessionOptions.extend({ logValue: z.boolean().default(true) });
6
+ var config_default_default = { session: SessionConfig.parse({
7
+ maxAge: 24 * 3600 * 1e3,
8
+ key: "EGG_SESS",
9
+ httpOnly: true,
10
+ encrypt: true
11
+ }) };
12
+
13
+ //#endregion
14
+ export { SessionConfig, config_default_default as default };
@@ -0,0 +1,2 @@
1
+ import { SessionConfig } from "./config/config.default.js";
2
+ export { SessionConfig };
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ import { SessionConfig } from "./config/config.default.js";
2
+ import "./app/extend/application.js";
3
+
4
+ export { SessionConfig };
@@ -0,0 +1,13 @@
1
+ import { SessionConfig } from "./config/config.default.js";
2
+ import { SessionStore, SessionStoreOrAppSessionStoreClass } from "./app/extend/application.js";
3
+
4
+ //#region src/types.d.ts
5
+ declare module 'egg' {
6
+ interface EggAppConfig {
7
+ session: SessionConfig;
8
+ }
9
+ interface Application {
10
+ set sessionStore(store: SessionStoreOrAppSessionStoreClass | null | undefined);
11
+ get sessionStore(): SessionStore | undefined;
12
+ }
13
+ }
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ export { };