@eggjs/session 4.0.1 → 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 +57 -61
  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 +43 -65
  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 -11
  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 -11
  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 -15
  46. package/src/typings/index.d.ts +0 -4
@@ -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,11 +0,0 @@
1
- import type { SessionConfig } from './config/config.default.js';
2
- import type { SessionStoreOrAppSessionStoreClass, SessionStore } from './app/extend/application.js';
3
- declare module '@eggjs/core' {
4
- interface EggAppConfig {
5
- session: SessionConfig;
6
- }
7
- interface EggCore {
8
- set sessionStore(store: SessionStoreOrAppSessionStoreClass | null | undefined);
9
- get sessionStore(): SessionStore | undefined;
10
- }
11
- }
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.1"
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,15 +0,0 @@
1
- import type { SessionConfig } from './config/config.default.js';
2
- import type { SessionStoreOrAppSessionStoreClass, SessionStore } from './app/extend/application.js';
3
-
4
- declare module '@eggjs/core' {
5
- // add EggAppConfig overrides types
6
- interface EggAppConfig {
7
- session: SessionConfig;
8
- }
9
-
10
- interface EggCore {
11
- // add EggCore instance property
12
- set sessionStore(store: SessionStoreOrAppSessionStoreClass | null | undefined);
13
- get sessionStore(): SessionStore | undefined;
14
- }
15
- }
@@ -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';