@eggjs/session 4.0.0 → 5.0.0-beta.15

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 (46) hide show
  1. package/README.md +58 -62
  2. package/dist/app/extend/application.d.ts +43 -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 +214 -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/package.json +44 -66
  13. package/dist/commonjs/app/extend/application.d.ts +0 -33
  14. package/dist/commonjs/app/extend/application.js +0 -55
  15. package/dist/commonjs/app/middleware/session.d.ts +0 -2
  16. package/dist/commonjs/app/middleware/session.js +0 -5
  17. package/dist/commonjs/app.d.ts +0 -6
  18. package/dist/commonjs/app.js +0 -29
  19. package/dist/commonjs/config/config.default.d.ts +0 -206
  20. package/dist/commonjs/config/config.default.js +0 -20
  21. package/dist/commonjs/index.d.ts +0 -2
  22. package/dist/commonjs/index.js +0 -19
  23. package/dist/commonjs/package.json +0 -3
  24. package/dist/commonjs/types.d.ts +0 -6
  25. package/dist/commonjs/types.js +0 -3
  26. package/dist/esm/app/extend/application.d.ts +0 -33
  27. package/dist/esm/app/extend/application.js +0 -49
  28. package/dist/esm/app/middleware/session.d.ts +0 -2
  29. package/dist/esm/app/middleware/session.js +0 -3
  30. package/dist/esm/app.d.ts +0 -6
  31. package/dist/esm/app.js +0 -26
  32. package/dist/esm/config/config.default.d.ts +0 -206
  33. package/dist/esm/config/config.default.js +0 -14
  34. package/dist/esm/index.d.ts +0 -2
  35. package/dist/esm/index.js +0 -3
  36. package/dist/esm/package.json +0 -3
  37. package/dist/esm/types.d.ts +0 -6
  38. package/dist/esm/types.js +0 -2
  39. package/dist/package.json +0 -4
  40. package/src/app/extend/application.ts +0 -59
  41. package/src/app/middleware/session.ts +0 -3
  42. package/src/app.ts +0 -30
  43. package/src/config/config.default.ts +0 -17
  44. package/src/index.ts +0 -3
  45. package/src/types.ts +0 -8
  46. package/src/typings/index.d.ts +0 -4
package/dist/esm/app.js DELETED
@@ -1,26 +0,0 @@
1
- import { SessionConfig } from './config/config.default.js';
2
- export default class AppBoot {
3
- app;
4
- constructor(app) {
5
- this.app = app;
6
- }
7
- configWillLoad() {
8
- const app = this.app;
9
- SessionConfig.parse(app.config.session);
10
- if (!app.config.session.httpOnly) {
11
- app.coreLogger.warn('[@eggjs/session]: please set `config.session.httpOnly` to true. It is very dangerous if session can read by client JavaScript.');
12
- }
13
- app.config.coreMiddleware.push('session');
14
- // listen on session's events
15
- app.on('session:missed', ({ ctx, key }) => {
16
- ctx.coreLogger.warn('[session][missed] key(%s)', key);
17
- });
18
- app.on('session:expired', ({ ctx, key, value }) => {
19
- ctx.coreLogger.warn('[session][expired] key(%s) value(%j)', key, app.config.session.logValue ? value : '');
20
- });
21
- app.on('session:invalid', ({ ctx, key, value }) => {
22
- ctx.coreLogger.warn('[session][invalid] key(%s) value(%j)', key, app.config.session.logValue ? value : '');
23
- });
24
- }
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE9BQU8sT0FBTyxPQUFPO0lBQ1QsR0FBRyxDQUFDO0lBRXJCLFlBQVksR0FBWTtRQUN0QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDckIsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnSUFBZ0ksQ0FBQyxDQUFDO1FBQ3hKLENBQUM7UUFDRCxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsNkJBQTZCO1FBQzdCLEdBQUcsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO1lBQ3hDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2hELEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0csQ0FBQyxDQUFDLENBQUM7UUFDSCxHQUFHLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDaEQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9
@@ -1,206 +0,0 @@
1
- import z from 'zod';
2
- export declare const SessionConfig: z.ZodObject<z.objectUtil.extendShape<{
3
- key: z.ZodDefault<z.ZodString>;
4
- maxAge: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<"session">]>>;
5
- autoCommit: z.ZodDefault<z.ZodBoolean>;
6
- overwrite: z.ZodDefault<z.ZodBoolean>;
7
- httpOnly: z.ZodDefault<z.ZodBoolean>;
8
- signed: z.ZodDefault<z.ZodBoolean>;
9
- rolling: z.ZodDefault<z.ZodBoolean>;
10
- renew: z.ZodDefault<z.ZodBoolean>;
11
- secure: z.ZodOptional<z.ZodBoolean>;
12
- sameSite: z.ZodOptional<z.ZodString>;
13
- externalKey: z.ZodOptional<z.ZodObject<{
14
- get: z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodUnknown>, z.ZodString>;
15
- set: z.ZodFunction<z.ZodTuple<[z.ZodAny, z.ZodString], z.ZodUnknown>, z.ZodVoid>;
16
- }, "strip", z.ZodTypeAny, {
17
- set: (args_0: any, args_1: string, ...args: unknown[]) => void;
18
- get: (args_0: any, ...args: unknown[]) => string;
19
- }, {
20
- set: (args_0: any, args_1: string, ...args: unknown[]) => void;
21
- get: (args_0: any, ...args: unknown[]) => string;
22
- }>>;
23
- store: z.ZodOptional<z.ZodObject<{
24
- get: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodNumber, z.ZodObject<{
25
- rolling: z.ZodBoolean;
26
- ctx: z.ZodAny;
27
- }, "strip", z.ZodTypeAny, {
28
- rolling: boolean;
29
- ctx?: any;
30
- }, {
31
- rolling: boolean;
32
- ctx?: any;
33
- }>], z.ZodUnknown>, z.ZodPromise<z.ZodAny>>;
34
- set: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodAny, z.ZodNumber, z.ZodObject<{
35
- rolling: z.ZodBoolean;
36
- changed: z.ZodBoolean;
37
- ctx: z.ZodAny;
38
- }, "strip", z.ZodTypeAny, {
39
- rolling: boolean;
40
- changed: boolean;
41
- ctx?: any;
42
- }, {
43
- rolling: boolean;
44
- changed: boolean;
45
- ctx?: any;
46
- }>], z.ZodUnknown>, z.ZodPromise<z.ZodVoid>>;
47
- destroy: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodObject<{
48
- ctx: z.ZodAny;
49
- }, "strip", z.ZodTypeAny, {
50
- ctx?: any;
51
- }, {
52
- ctx?: any;
53
- }>], z.ZodUnknown>, z.ZodPromise<z.ZodVoid>>;
54
- }, "strip", z.ZodTypeAny, {
55
- set: (args_0: string, args_1: any, args_2: number, args_3: {
56
- rolling: boolean;
57
- changed: boolean;
58
- ctx?: any;
59
- }, ...args: unknown[]) => Promise<void>;
60
- get: (args_0: string, args_1: number, args_2: {
61
- rolling: boolean;
62
- ctx?: any;
63
- }, ...args: unknown[]) => Promise<any>;
64
- destroy: (args_0: string, args_1: {
65
- ctx?: any;
66
- }, ...args: unknown[]) => Promise<void>;
67
- }, {
68
- set: (args_0: string, args_1: any, args_2: number, args_3: {
69
- rolling: boolean;
70
- changed: boolean;
71
- ctx?: any;
72
- }, ...args: unknown[]) => Promise<void>;
73
- get: (args_0: string, args_1: number, args_2: {
74
- rolling: boolean;
75
- ctx?: any;
76
- }, ...args: unknown[]) => Promise<any>;
77
- destroy: (args_0: string, args_1: {
78
- ctx?: any;
79
- }, ...args: unknown[]) => Promise<void>;
80
- }>>;
81
- ContextStore: z.ZodOptional<z.ZodAny>;
82
- encode: z.ZodDefault<z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodUnknown>, z.ZodString>>>;
83
- decode: z.ZodDefault<z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodAny>>;
84
- genid: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodUnknown>, z.ZodString>>;
85
- prefix: z.ZodOptional<z.ZodString>;
86
- valid: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodAny, z.ZodAny], z.ZodUnknown>, z.ZodAny>>;
87
- beforeSave: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodAny, z.ZodAny], z.ZodUnknown>, z.ZodVoid>>;
88
- }, {
89
- logValue: z.ZodDefault<z.ZodBoolean>;
90
- }>, "strip", z.ZodTypeAny, {
91
- logValue: boolean;
92
- key: string;
93
- autoCommit: boolean;
94
- overwrite: boolean;
95
- httpOnly: boolean;
96
- signed: boolean;
97
- rolling: boolean;
98
- renew: boolean;
99
- encode: (args_0: any, ...args: unknown[]) => string;
100
- decode: (args_0: string, ...args: unknown[]) => any;
101
- maxAge?: number | "session" | undefined;
102
- secure?: boolean | undefined;
103
- sameSite?: string | undefined;
104
- externalKey?: {
105
- set: (args_0: any, args_1: string, ...args: unknown[]) => void;
106
- get: (args_0: any, ...args: unknown[]) => string;
107
- } | undefined;
108
- store?: {
109
- set: (args_0: string, args_1: any, args_2: number, args_3: {
110
- rolling: boolean;
111
- changed: boolean;
112
- ctx?: any;
113
- }, ...args: unknown[]) => Promise<void>;
114
- get: (args_0: string, args_1: number, args_2: {
115
- rolling: boolean;
116
- ctx?: any;
117
- }, ...args: unknown[]) => Promise<any>;
118
- destroy: (args_0: string, args_1: {
119
- ctx?: any;
120
- }, ...args: unknown[]) => Promise<void>;
121
- } | undefined;
122
- ContextStore?: any;
123
- genid?: ((args_0: any, ...args: unknown[]) => string) | undefined;
124
- prefix?: string | undefined;
125
- valid?: ((args_0: any, args_1: any, ...args: unknown[]) => any) | undefined;
126
- beforeSave?: ((args_0: any, args_1: any, ...args: unknown[]) => void) | undefined;
127
- }, {
128
- logValue?: boolean | undefined;
129
- key?: string | undefined;
130
- maxAge?: number | "session" | undefined;
131
- autoCommit?: boolean | undefined;
132
- overwrite?: boolean | undefined;
133
- httpOnly?: boolean | undefined;
134
- signed?: boolean | undefined;
135
- rolling?: boolean | undefined;
136
- renew?: boolean | undefined;
137
- secure?: boolean | undefined;
138
- sameSite?: string | undefined;
139
- externalKey?: {
140
- set: (args_0: any, args_1: string, ...args: unknown[]) => void;
141
- get: (args_0: any, ...args: unknown[]) => string;
142
- } | undefined;
143
- store?: {
144
- set: (args_0: string, args_1: any, args_2: number, args_3: {
145
- rolling: boolean;
146
- changed: boolean;
147
- ctx?: any;
148
- }, ...args: unknown[]) => Promise<void>;
149
- get: (args_0: string, args_1: number, args_2: {
150
- rolling: boolean;
151
- ctx?: any;
152
- }, ...args: unknown[]) => Promise<any>;
153
- destroy: (args_0: string, args_1: {
154
- ctx?: any;
155
- }, ...args: unknown[]) => Promise<void>;
156
- } | undefined;
157
- ContextStore?: any;
158
- encode?: ((args_0: any, ...args: unknown[]) => string) | undefined;
159
- decode?: ((args_0: string, ...args: unknown[]) => any) | undefined;
160
- genid?: ((args_0: any, ...args: unknown[]) => string) | undefined;
161
- prefix?: string | undefined;
162
- valid?: ((args_0: any, args_1: any, ...args: unknown[]) => any) | undefined;
163
- beforeSave?: ((args_0: any, args_1: any, ...args: unknown[]) => void) | undefined;
164
- }>;
165
- export type SessionConfig = z.infer<typeof SessionConfig>;
166
- declare const _default: {
167
- session: {
168
- logValue: boolean;
169
- key: string;
170
- autoCommit: boolean;
171
- overwrite: boolean;
172
- httpOnly: boolean;
173
- signed: boolean;
174
- rolling: boolean;
175
- renew: boolean;
176
- encode: (args_0: any, ...args: unknown[]) => string;
177
- decode: (args_0: string, ...args: unknown[]) => any;
178
- maxAge?: number | "session" | undefined;
179
- secure?: boolean | undefined;
180
- sameSite?: string | undefined;
181
- externalKey?: {
182
- set: (args_0: any, args_1: string, ...args: unknown[]) => void;
183
- get: (args_0: any, ...args: unknown[]) => string;
184
- } | undefined;
185
- store?: {
186
- set: (args_0: string, args_1: any, args_2: number, args_3: {
187
- rolling: boolean;
188
- changed: boolean;
189
- ctx?: any;
190
- }, ...args: unknown[]) => Promise<void>;
191
- get: (args_0: string, args_1: number, args_2: {
192
- rolling: boolean;
193
- ctx?: any;
194
- }, ...args: unknown[]) => Promise<any>;
195
- destroy: (args_0: string, args_1: {
196
- ctx?: any;
197
- }, ...args: unknown[]) => Promise<void>;
198
- } | undefined;
199
- ContextStore?: any;
200
- genid?: ((args_0: any, ...args: unknown[]) => string) | undefined;
201
- prefix?: string | undefined;
202
- valid?: ((args_0: any, args_1: any, ...args: unknown[]) => any) | undefined;
203
- beforeSave?: ((args_0: any, args_1: any, ...args: unknown[]) => void) | undefined;
204
- };
205
- };
206
- export default _default;
@@ -1,14 +0,0 @@
1
- import z from 'zod';
2
- import { SessionOptions } from 'koa-session';
3
- export const SessionConfig = SessionOptions.extend({
4
- logValue: z.boolean().default(true),
5
- });
6
- export default {
7
- session: SessionConfig.parse({
8
- maxAge: 24 * 3600 * 1000, // ms, one day
9
- key: 'EGG_SESS',
10
- httpOnly: true,
11
- encrypt: true,
12
- }),
13
- };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUNwQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ2pELFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztDQUNwQyxDQUFDLENBQUM7QUFJSCxlQUFlO0lBQ2IsT0FBTyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDM0IsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFLGNBQWM7UUFDeEMsR0FBRyxFQUFFLFVBQVU7UUFDZixRQUFRLEVBQUUsSUFBSTtRQUNkLE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQztDQUNILENBQUMifQ==
@@ -1,2 +0,0 @@
1
- import './types.js';
2
- export * from './config/config.default.js';
package/dist/esm/index.js DELETED
@@ -1,3 +0,0 @@
1
- import './types.js';
2
- export * from './config/config.default.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLENBQUM7QUFFcEIsY0FBYyw0QkFBNEIsQ0FBQyJ9
@@ -1,3 +0,0 @@
1
- {
2
- "type": "module"
3
- }
@@ -1,6 +0,0 @@
1
- import type { SessionConfig } from './config/config.default.js';
2
- declare module '@eggjs/core' {
3
- interface EggAppConfig {
4
- session: SessionConfig;
5
- }
6
- }
package/dist/esm/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
package/dist/package.json DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "name": "@eggjs/session",
3
- "version": "4.0.0"
4
- }
@@ -1,59 +0,0 @@
1
- import assert from 'node:assert';
2
- import { EggCore } from '@eggjs/core';
3
- import type { SessionConfig } from '../../config/config.default.js';
4
-
5
- export type SessionStore = Required<SessionConfig>['store'];
6
-
7
- export type SessionStoreOrAppSessionStoreClass = SessionStore | {
8
- new(app: Application): SessionStore;
9
- };
10
-
11
- export default class Application extends EggCore {
12
- /**
13
- * set session external store
14
- *
15
- * ```js
16
- * app.sessionStore = {
17
- * get(key): Promise<unknown>,
18
- * set(key, data): Promise<void>,
19
- * destroy(key): Promise<void>,
20
- * };
21
- *
22
- * app.sessionStore = class SessionStore {
23
- * constructor(app) {
24
- * }
25
- * get(key): Promise<unknown>,
26
- * set(key, data): Promise<void>,
27
- * destroy(key): Promise<void>,
28
- * }
29
- * ```
30
- * @param {Class|Object} store session store class or instance
31
- */
32
- set sessionStore(store: SessionStoreOrAppSessionStoreClass | null | undefined) {
33
- if (this.config.session.store && this.config.env !== 'unittest') {
34
- this.coreLogger.warn('[@eggjs/session] sessionStore already exists and will be overwrite');
35
- }
36
-
37
- // support this.sessionStore = null to disable external store
38
- if (!store) {
39
- this.config.session.store = undefined;
40
- this.coreLogger.info('[@eggjs/session] sessionStore is disabled');
41
- return;
42
- }
43
-
44
- if (typeof store === 'function') {
45
- store = new store(this);
46
- }
47
- assert(typeof store.get === 'function', 'store.get must be function');
48
- assert(typeof store.set === 'function', 'store.set must be function');
49
- assert(typeof store.destroy === 'function', 'store.destroy must be function');
50
- this.config.session.store = store;
51
- }
52
-
53
- /**
54
- * get sessionStore instance
55
- */
56
- get sessionStore(): SessionStore | undefined {
57
- return this.config.session.store;
58
- }
59
- }
@@ -1,3 +0,0 @@
1
- import { createSession } from 'koa-session';
2
-
3
- export default createSession;
package/src/app.ts DELETED
@@ -1,30 +0,0 @@
1
- import type { ILifecycleBoot, EggCore } from '@eggjs/core';
2
- import { SessionConfig } from './config/config.default.js';
3
-
4
- export default class AppBoot implements ILifecycleBoot {
5
- private readonly app;
6
-
7
- constructor(app: EggCore) {
8
- this.app = app;
9
- }
10
-
11
- configWillLoad() {
12
- const app = this.app;
13
- SessionConfig.parse(app.config.session);
14
-
15
- if (!app.config.session.httpOnly) {
16
- app.coreLogger.warn('[@eggjs/session]: please set `config.session.httpOnly` to true. It is very dangerous if session can read by client JavaScript.');
17
- }
18
- app.config.coreMiddleware.push('session');
19
- // listen on session's events
20
- app.on('session:missed', ({ ctx, key }) => {
21
- ctx.coreLogger.warn('[session][missed] key(%s)', key);
22
- });
23
- app.on('session:expired', ({ ctx, key, value }) => {
24
- ctx.coreLogger.warn('[session][expired] key(%s) value(%j)', key, app.config.session.logValue ? value : '');
25
- });
26
- app.on('session:invalid', ({ ctx, key, value }) => {
27
- ctx.coreLogger.warn('[session][invalid] key(%s) value(%j)', key, app.config.session.logValue ? value : '');
28
- });
29
- }
30
- }
@@ -1,17 +0,0 @@
1
- import z from 'zod';
2
- import { SessionOptions } from 'koa-session';
3
-
4
- export const SessionConfig = SessionOptions.extend({
5
- logValue: z.boolean().default(true),
6
- });
7
-
8
- export type SessionConfig = z.infer<typeof SessionConfig>;
9
-
10
- export default {
11
- session: SessionConfig.parse({
12
- maxAge: 24 * 3600 * 1000, // ms, one day
13
- key: 'EGG_SESS',
14
- httpOnly: true,
15
- encrypt: true,
16
- }),
17
- };
package/src/index.ts DELETED
@@ -1,3 +0,0 @@
1
- import './types.js';
2
-
3
- export * from './config/config.default.js';
package/src/types.ts DELETED
@@ -1,8 +0,0 @@
1
- import type { SessionConfig } from './config/config.default.js';
2
-
3
- declare module '@eggjs/core' {
4
- // add EggAppConfig overrides types
5
- interface EggAppConfig {
6
- session: SessionConfig;
7
- }
8
- }
@@ -1,4 +0,0 @@
1
- // make sure to import egg typings and let typescript know about it
2
- // @see https://github.com/whxaxes/blog/issues/11
3
- // and https://www.typescriptlang.org/docs/handbook/declaration-merging.html
4
- import 'egg';