@adaptivestone/framework 5.0.0-beta.41 → 5.0.0-beta.44

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/CHANGELOG.md CHANGED
@@ -48,9 +48,27 @@ Main feature of that release is full TypeScript support insluding mongoose model
48
48
  - **[BREAKING]** Minimum node version is 20.12 as for now (`process.loadEnvFile`).
49
49
  - **[BREAKING]** ESM only. No more commonJS. That help to fix a lot of bugs with tests and provides better development expirience.
50
50
  - **[BREAKING]** Mongoose v8. <https://mongoosejs.com/docs/migrating_to_8.html>.
51
+ - **[BREAKING]** Mongoose v9. <https://mongoosejs.com/docs/migrating_to_9.html>.
51
52
  - **[BREAKING]** Vitest v4 <https://vitest.dev/guide/migration.html#vitest-4>
52
53
 
53
54
 
55
+ ---
56
+ ## [5.0.0-beta.44] NEXT
57
+
58
+ - **[NEW]** Logout method
59
+ - **[Update]** ser model typing
60
+
61
+ ---
62
+ ## [5.0.0-beta.43]
63
+
64
+ - **[FIX]** Fix typo in peerDeps
65
+
66
+
67
+ ---
68
+ ## [5.0.0-beta.42]
69
+
70
+ - **[BREAKING]** Mongoose v9. <https://mongoosejs.com/docs/migrating_to_9.html>.
71
+
54
72
  ---
55
73
  ## [5.0.0-beta.41]
56
74
 
@@ -27,6 +27,13 @@ declare class Auth extends AbstractController {
27
27
  '/register': {
28
28
  handler: (req: FrameworkRequest & {
29
29
  appInfo: {
30
+ request: {
31
+ email: string;
32
+ password: string;
33
+ firstName?: string;
34
+ lastName?: string;
35
+ nickName?: string;
36
+ };
30
37
  i18n: {
31
38
  t: TFunction;
32
39
  language: string;
@@ -47,11 +54,20 @@ declare class Auth extends AbstractController {
47
54
  lastName: undefined;
48
55
  }, "">;
49
56
  };
50
- '/logout': (_req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
57
+ '/logout': (req: FrameworkRequest & {
58
+ appInfo: {
59
+ user: {
60
+ _id: string;
61
+ };
62
+ };
63
+ }, res: Response) => Promise<Response<any, Record<string, any>>>;
51
64
  '/verify': (req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
52
65
  '/send-recovery-email': {
53
66
  handler: (req: FrameworkRequest & {
54
67
  appInfo: {
68
+ request: {
69
+ email: string;
70
+ };
55
71
  i18n: {
56
72
  t: TFunction;
57
73
  language: string;
@@ -65,7 +81,14 @@ declare class Auth extends AbstractController {
65
81
  }, "">;
66
82
  };
67
83
  '/recover-password': {
68
- handler: (req: FrameworkRequest, res: Response) => Promise<Response<any, Record<string, any>>>;
84
+ handler: (req: FrameworkRequest & {
85
+ appInfo: {
86
+ request: {
87
+ passwordRecoveryToken: string;
88
+ password: string;
89
+ };
90
+ };
91
+ }, res: Response) => Promise<Response<any, Record<string, any>>>;
69
92
  request: import("yup").ObjectSchema<{
70
93
  password: string;
71
94
  passwordRecoveryToken: string;
@@ -77,6 +100,9 @@ declare class Auth extends AbstractController {
77
100
  '/send-verification': {
78
101
  handler: (req: FrameworkRequest & {
79
102
  appInfo: {
103
+ request: {
104
+ email: string;
105
+ };
80
106
  i18n: {
81
107
  t: TFunction;
82
108
  language: string;
@@ -101,25 +127,51 @@ declare class Auth extends AbstractController {
101
127
  }, res: Response): Promise<Response<any, Record<string, any>>>;
102
128
  postRegister(req: FrameworkRequest & {
103
129
  appInfo: {
130
+ request: {
131
+ email: string;
132
+ password: string;
133
+ firstName?: string;
134
+ lastName?: string;
135
+ nickName?: string;
136
+ };
104
137
  i18n: {
105
138
  t: TFunction;
106
139
  language: string;
107
140
  };
108
141
  };
109
142
  }, res: Response): Promise<Response<any, Record<string, any>>>;
110
- postLogout(_req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
143
+ postLogout(req: FrameworkRequest & {
144
+ appInfo: {
145
+ user: {
146
+ _id: string;
147
+ };
148
+ };
149
+ }, res: Response): Promise<Response<any, Record<string, any>>>;
111
150
  verifyUser(req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
112
151
  sendPasswordRecoveryEmail(req: FrameworkRequest & {
113
152
  appInfo: {
153
+ request: {
154
+ email: string;
155
+ };
114
156
  i18n: {
115
157
  t: TFunction;
116
158
  language: string;
117
159
  };
118
160
  };
119
161
  }, res: Response): Promise<Response<any, Record<string, any>>>;
120
- recoverPassword(req: FrameworkRequest, res: Response): Promise<Response<any, Record<string, any>>>;
162
+ recoverPassword(req: FrameworkRequest & {
163
+ appInfo: {
164
+ request: {
165
+ passwordRecoveryToken: string;
166
+ password: string;
167
+ };
168
+ };
169
+ }, res: Response): Promise<Response<any, Record<string, any>>>;
121
170
  sendVerification(req: FrameworkRequest & {
122
171
  appInfo: {
172
+ request: {
173
+ email: string;
174
+ };
123
175
  i18n: {
124
176
  t: TFunction;
125
177
  language: string;
@@ -107,9 +107,14 @@ class Auth extends AbstractController {
107
107
  }
108
108
  return res.status(201).json();
109
109
  }
110
- async postLogout(_req, res) {
111
- // todo remove token
112
- return res.status(200).json();
110
+ async postLogout(req, res) {
111
+ const user = req.appInfo.user;
112
+ if (user) {
113
+ const token = req.headers.authorization?.replace(/^Bearer\s+/i, '');
114
+ const UserModel = this.app.getModel('User');
115
+ await UserModel.updateOne({ _id: user._id }, { $pull: { sessionTokens: { token } } });
116
+ }
117
+ return res.status(200).json({ message: 'Ok' });
113
118
  }
114
119
  async verifyUser(req, res) {
115
120
  const User = req.appInfo.app.getModel('User');
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/controllers/Auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/controllers/Auth.ts"],"names":[],"mappings":"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"}