@volcanicminds/backend 0.6.3 → 0.6.5

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 (107) hide show
  1. package/dist/index.js +332 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/lib/api/auth/controller/auth.js +337 -0
  4. package/dist/lib/api/auth/controller/auth.js.map +1 -0
  5. package/dist/lib/api/auth/routes.js +195 -0
  6. package/dist/lib/api/auth/routes.js.map +1 -0
  7. package/dist/lib/api/health/controller/health.js +8 -0
  8. package/dist/lib/api/health/controller/health.js.map +1 -0
  9. package/dist/lib/api/health/routes.js +26 -0
  10. package/dist/lib/api/health/routes.js.map +1 -0
  11. package/dist/lib/api/token/controller/token.js +116 -0
  12. package/dist/lib/api/token/controller/token.js.map +1 -0
  13. package/dist/lib/api/token/routes.js +152 -0
  14. package/dist/lib/api/token/routes.js.map +1 -0
  15. package/dist/lib/api/tool/controller/tool.js +25 -0
  16. package/dist/lib/api/tool/controller/tool.js.map +1 -0
  17. package/dist/lib/api/tool/routes.js +26 -0
  18. package/dist/lib/api/tool/routes.js.map +1 -0
  19. package/dist/lib/api/users/controller/user.js +14 -0
  20. package/dist/lib/api/users/controller/user.js.map +1 -0
  21. package/dist/lib/api/users/routes.js +65 -0
  22. package/dist/lib/api/users/routes.js.map +1 -0
  23. package/dist/lib/apollo/context.js +19 -0
  24. package/dist/lib/apollo/context.js.map +1 -0
  25. package/dist/lib/apollo/resolvers.js +9 -0
  26. package/dist/lib/apollo/resolvers.js.map +1 -0
  27. package/dist/lib/apollo/type-defs.js +9 -0
  28. package/dist/lib/apollo/type-defs.js.map +1 -0
  29. package/dist/lib/config/general.js +9 -0
  30. package/dist/lib/config/general.js.map +1 -0
  31. package/dist/lib/config/plugins.js +57 -0
  32. package/dist/lib/config/plugins.js.map +1 -0
  33. package/dist/lib/config/roles.js +19 -0
  34. package/dist/lib/config/roles.js.map +1 -0
  35. package/dist/lib/config/tracking.js +10 -0
  36. package/dist/lib/config/tracking.js.map +1 -0
  37. package/dist/lib/hooks/onError.js +15 -0
  38. package/dist/lib/hooks/onError.js.map +1 -0
  39. package/dist/lib/hooks/onRequest.js +71 -0
  40. package/dist/lib/hooks/onRequest.js.map +1 -0
  41. package/dist/lib/hooks/onResponse.js +25 -0
  42. package/dist/lib/hooks/onResponse.js.map +1 -0
  43. package/dist/lib/hooks/preHandler.js +39 -0
  44. package/dist/lib/hooks/preHandler.js.map +1 -0
  45. package/dist/lib/hooks/preSerialization.js +47 -0
  46. package/dist/lib/hooks/preSerialization.js.map +1 -0
  47. package/dist/lib/loader/general.js +29 -0
  48. package/dist/lib/loader/general.js.map +1 -0
  49. package/dist/lib/loader/hooks.js +46 -0
  50. package/dist/lib/loader/hooks.js.map +1 -0
  51. package/dist/lib/loader/plugins.js +24 -0
  52. package/dist/lib/loader/plugins.js.map +1 -0
  53. package/dist/lib/loader/roles.js +22 -0
  54. package/dist/lib/loader/roles.js.map +1 -0
  55. package/dist/lib/loader/router.js +181 -0
  56. package/dist/lib/loader/router.js.map +1 -0
  57. package/dist/lib/loader/schemas.js +34 -0
  58. package/dist/lib/loader/schemas.js.map +1 -0
  59. package/dist/lib/loader/tracking.js +70 -0
  60. package/dist/lib/loader/tracking.js.map +1 -0
  61. package/dist/lib/loader/translation.js +53 -0
  62. package/dist/lib/loader/translation.js.map +1 -0
  63. package/dist/lib/locales/en.json +12 -0
  64. package/dist/lib/locales/it.json +12 -0
  65. package/dist/lib/middleware/dispatchForgotPasswordLink.js +19 -0
  66. package/dist/lib/middleware/dispatchForgotPasswordLink.js.map +1 -0
  67. package/dist/lib/middleware/isAdmin.js +17 -0
  68. package/dist/lib/middleware/isAdmin.js.map +1 -0
  69. package/dist/lib/middleware/isAuthenticated.js +18 -0
  70. package/dist/lib/middleware/isAuthenticated.js.map +1 -0
  71. package/dist/lib/middleware/postAuth.js +19 -0
  72. package/dist/lib/middleware/postAuth.js.map +1 -0
  73. package/dist/lib/middleware/preAuth.js +17 -0
  74. package/dist/lib/middleware/preAuth.js.map +1 -0
  75. package/dist/lib/middleware/preForgotPasswordHandler.js +17 -0
  76. package/dist/lib/middleware/preForgotPasswordHandler.js.map +1 -0
  77. package/dist/lib/schemas/auth.js +101 -0
  78. package/dist/lib/schemas/auth.js.map +1 -0
  79. package/dist/lib/schemas/common.js +66 -0
  80. package/dist/lib/schemas/common.js.map +1 -0
  81. package/dist/lib/schemas/token.js +38 -0
  82. package/dist/lib/schemas/token.js.map +1 -0
  83. package/dist/lib/util/common.js +19 -0
  84. package/dist/lib/util/common.js.map +1 -0
  85. package/dist/lib/util/errors.js +19 -0
  86. package/dist/lib/util/errors.js.map +1 -0
  87. package/dist/lib/util/generate.js +10 -0
  88. package/dist/lib/util/generate.js.map +1 -0
  89. package/dist/lib/util/logger.js +52 -0
  90. package/dist/lib/util/logger.js.map +1 -0
  91. package/dist/lib/util/mark.js +25 -0
  92. package/dist/lib/util/mark.js.map +1 -0
  93. package/dist/lib/util/path.js +12 -0
  94. package/dist/lib/util/path.js.map +1 -0
  95. package/dist/lib/util/regexp.js +15 -0
  96. package/dist/lib/util/regexp.js.map +1 -0
  97. package/dist/lib/util/tracker.js +123 -0
  98. package/dist/lib/util/tracker.js.map +1 -0
  99. package/dist/lib/util/yn.js +17 -0
  100. package/dist/lib/util/yn.js.map +1 -0
  101. package/dist/nodemon.json +7 -0
  102. package/dist/package.json +101 -0
  103. package/dist/server.js +5 -0
  104. package/dist/server.js.map +1 -0
  105. package/dist/tsconfig.json +32 -0
  106. package/lib/loader/router.ts +10 -2
  107. package/package.json +2 -2
@@ -0,0 +1,337 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __rest = (this && this.__rest) || function (s, e) {
35
+ var t = {};
36
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
37
+ t[p] = s[p];
38
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
39
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
40
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
41
+ t[p[i]] = s[p[i]];
42
+ }
43
+ return t;
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.unblock = exports.block = exports.invalidateTokens = exports.refreshToken = exports.login = exports.resetPassword = exports.confirmEmail = exports.forgotPassword = exports.changePassword = exports.validatePassword = exports.unregister = exports.register = void 0;
47
+ const regExp = __importStar(require("../../../util/regexp"));
48
+ function register(req, reply) {
49
+ var _a, _b, _c;
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const _d = req.data(), { password1: password, password2 } = _d, data = __rest(_d, ["password1", "password2"]);
52
+ if (!req.server['userManager'].isImplemented()) {
53
+ throw new Error('Not implemented');
54
+ }
55
+ if (!data.username) {
56
+ return reply.status(400).send(new Error('Username not valid'));
57
+ }
58
+ if (!data.email || !regExp.email.test(data.email)) {
59
+ return reply.status(400).send(new Error('Email not valid'));
60
+ }
61
+ if (!password || !regExp.password.test(password)) {
62
+ return reply.status(400).send(new Error('Password not valid'));
63
+ }
64
+ if (!password2 || password2 !== password) {
65
+ return reply.status(400).send(new Error('Repeated password not match'));
66
+ }
67
+ let existings = yield req.server['userManager'].retrieveUserByEmail(data.email);
68
+ if (existings) {
69
+ return reply.status(400).send(new Error('Email already registered'));
70
+ }
71
+ if ((data.requiredRoles || []).includes('admin')) {
72
+ existings = yield req.server['userManager'].findQuery({ 'roles:in': 'admin' });
73
+ if ((_a = existings === null || existings === void 0 ? void 0 : existings.records) === null || _a === void 0 ? void 0 : _a.length) {
74
+ return reply.status(400).send(new Error('User admin already registered'));
75
+ }
76
+ }
77
+ const publicRole = ((_c = (_b = global.roles) === null || _b === void 0 ? void 0 : _b.public) === null || _c === void 0 ? void 0 : _c.code) || 'public';
78
+ data.roles = (data.requiredRoles || []).map((r) => { var _a; return (_a = global.roles[r]) === null || _a === void 0 ? void 0 : _a.code; }).filter((r) => !!r);
79
+ if (!data.roles.includes(publicRole)) {
80
+ data.roles.push(publicRole);
81
+ }
82
+ const user = yield req.server['userManager'].createUser(Object.assign(Object.assign({}, data), { password: password }));
83
+ if (!user) {
84
+ return reply.status(400).send(new Error('User not registered'));
85
+ }
86
+ return user;
87
+ });
88
+ }
89
+ exports.register = register;
90
+ function unregister(req, reply) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ const { email, password } = req.data();
93
+ let user = yield req.server['userManager'].retrieveUserByPassword(email, password);
94
+ let isValid = yield req.server['userManager'].isValidUser(user);
95
+ if (!isValid) {
96
+ return reply.status(403).send(new Error('Wrong credentials'));
97
+ }
98
+ if (user.blocked) {
99
+ return reply.status(403).send(new Error('User blocked'));
100
+ }
101
+ user = yield req.server['userManager'].disableUserById(user.getId());
102
+ isValid = yield req.server['userManager'].isValidUser(user);
103
+ if (!isValid) {
104
+ return reply.status(400).send(new Error('User not valid'));
105
+ }
106
+ return { ok: true };
107
+ });
108
+ }
109
+ exports.unregister = unregister;
110
+ function validatePassword(req, reply) {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ const { password } = req.data();
113
+ if (!password) {
114
+ return reply.status(400).send(new Error('Password cannot be null'));
115
+ }
116
+ const match = regExp.password.test(password);
117
+ if (!match) {
118
+ return reply.status(400).send(new Error('Password is not valid'));
119
+ }
120
+ return { ok: match };
121
+ });
122
+ }
123
+ exports.validatePassword = validatePassword;
124
+ function changePassword(req, reply) {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ const { email, oldPassword, newPassword1, newPassword2 } = req.data();
127
+ if (!req.server['userManager'].isImplemented()) {
128
+ throw new Error('Not implemented');
129
+ }
130
+ if (!newPassword1 || !regExp.password.test(newPassword1)) {
131
+ return reply.status(400).send(new Error('New password is not valid'));
132
+ }
133
+ if (!newPassword2 || newPassword2 !== newPassword1) {
134
+ return reply.status(400).send(new Error('Repeated new password not match'));
135
+ }
136
+ let user = yield req.server['userManager'].retrieveUserByPassword(email, oldPassword);
137
+ let isValid = yield req.server['userManager'].isValidUser(user);
138
+ if (!isValid) {
139
+ return reply.status(403).send(new Error('Wrong credentials'));
140
+ }
141
+ if (user.blocked) {
142
+ return reply.status(403).send(new Error('User blocked'));
143
+ }
144
+ user = yield req.server['userManager'].changePassword(email, newPassword1, oldPassword);
145
+ isValid = yield req.server['userManager'].isValidUser(user);
146
+ return { ok: isValid };
147
+ });
148
+ }
149
+ exports.changePassword = changePassword;
150
+ function forgotPassword(req, reply) {
151
+ return __awaiter(this, void 0, void 0, function* () {
152
+ const { username, email } = req.data();
153
+ if (!req.server['userManager'].isImplemented()) {
154
+ throw new Error('Not implemented');
155
+ }
156
+ if (!username && (!email || (email && !regExp.email.test(email)))) {
157
+ return reply.status(400).send(new Error('Missing a valid user identifier'));
158
+ }
159
+ let user = null;
160
+ if (email) {
161
+ user = yield req.server['userManager'].retrieveUserByEmail(email);
162
+ }
163
+ else if (username) {
164
+ user = yield req.server['userManager'].retrieveUserByUsername(username);
165
+ }
166
+ let isValid = yield req.server['userManager'].isValidUser(user);
167
+ if (!isValid) {
168
+ return reply.status(403).send(new Error('Wrong credentials'));
169
+ }
170
+ if (user === null || user === void 0 ? void 0 : user.blocked) {
171
+ return reply.status(403).send(new Error('User blocked'));
172
+ }
173
+ user = yield req.server['userManager'].forgotPassword(user.email);
174
+ isValid = yield req.server['userManager'].isValidUser(user);
175
+ return { ok: isValid };
176
+ });
177
+ }
178
+ exports.forgotPassword = forgotPassword;
179
+ function confirmEmail(req, reply) {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ const { code } = req.data();
182
+ if (!code) {
183
+ return reply.status(400).send(new Error('Missing the confirm email token'));
184
+ }
185
+ let user = yield req.server['userManager'].retrieveUserByConfirmationToken(code);
186
+ let isValid = yield req.server['userManager'].isValidUser(user);
187
+ if (!isValid) {
188
+ return reply.status(403).send(new Error('Wrong credentials'));
189
+ }
190
+ if (user.blocked) {
191
+ return reply.status(403).send(new Error('User blocked'));
192
+ }
193
+ user = yield req.server['userManager'].userConfirmation(user);
194
+ isValid = yield req.server['userManager'].isValidUser(user);
195
+ return { ok: isValid };
196
+ });
197
+ }
198
+ exports.confirmEmail = confirmEmail;
199
+ function resetPassword(req, reply) {
200
+ return __awaiter(this, void 0, void 0, function* () {
201
+ const { code, newPassword1, newPassword2 } = req.data();
202
+ if (!req.server['userManager'].isImplemented()) {
203
+ throw new Error('Not implemented');
204
+ }
205
+ if (!newPassword1 || !regExp.password.test(newPassword1)) {
206
+ return reply.status(400).send(new Error('New password not valid'));
207
+ }
208
+ if (!newPassword2 || newPassword2 !== newPassword1) {
209
+ return reply.status(400).send(new Error('Repeated new password not match'));
210
+ }
211
+ let user = yield req.server['userManager'].retrieveUserByResetPasswordToken(code);
212
+ let isValid = yield req.server['userManager'].isValidUser(user);
213
+ if (!isValid) {
214
+ return reply.status(403).send(new Error('Wrong credentials'));
215
+ }
216
+ if (user.blocked) {
217
+ return reply.status(403).send(new Error('User blocked'));
218
+ }
219
+ user = yield req.server['userManager'].resetPassword(user, newPassword1);
220
+ isValid = yield req.server['userManager'].isValidUser(user);
221
+ return { ok: isValid, user };
222
+ });
223
+ }
224
+ exports.resetPassword = resetPassword;
225
+ function login(req, reply) {
226
+ var _a, _b;
227
+ return __awaiter(this, void 0, void 0, function* () {
228
+ const { email, password } = req.data();
229
+ if (!req.server['userManager'].isImplemented()) {
230
+ throw new Error('Not implemented');
231
+ }
232
+ if (!email || !regExp.email.test(email)) {
233
+ return reply.status(400).send(new Error('Email not valid'));
234
+ }
235
+ if (!password || !regExp.password.test(password)) {
236
+ return reply.status(400).send(new Error('Password not valid'));
237
+ }
238
+ let user = yield req.server['userManager'].retrieveUserByPassword(email, password);
239
+ const isValid = yield req.server['userManager'].isValidUser(user);
240
+ if (!isValid) {
241
+ return reply.status(403).send(new Error('Wrong credentials'));
242
+ }
243
+ if (!(user.confirmed === true)) {
244
+ return reply.status(403).send(new Error('User email unconfirmed'));
245
+ }
246
+ const isPasswordToBeChanged = req.server['userManager'].isPasswordToBeChanged(user);
247
+ if (isPasswordToBeChanged) {
248
+ return reply
249
+ .status(403)
250
+ .send({ statusCode: 403, code: 'PASSWORD_TO_BE_CHANGED', message: 'The password is expired' });
251
+ }
252
+ if (user.blocked) {
253
+ return reply.status(403).send(new Error('User blocked'));
254
+ }
255
+ if (config.enable && config.options.reset_external_id_on_login) {
256
+ user = yield req.server['userManager'].resetExternalId(user.getId());
257
+ }
258
+ const token = yield reply.jwtSign({ sub: user.externalId });
259
+ const refreshToken = reply.server.jwt['refreshToken']
260
+ ? yield reply.server.jwt['refreshToken'].sign({ sub: user.externalId })
261
+ : undefined;
262
+ return Object.assign(Object.assign({}, user), { roles: (user.roles || [((_b = (_a = global.role) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.code) || 'public']).map((r) => (r === null || r === void 0 ? void 0 : r.code) || r), token: token, refreshToken });
263
+ });
264
+ }
265
+ exports.login = login;
266
+ function refreshToken(req, reply) {
267
+ return __awaiter(this, void 0, void 0, function* () {
268
+ const { token, refreshToken } = req.data();
269
+ if (!req.server['userManager'].isImplemented()) {
270
+ throw new Error('Not implemented');
271
+ }
272
+ const tokenData = (yield reply.server.jwt.decode(token));
273
+ const minAccettable = Math.floor(Date.now() / 1000) - 2592000;
274
+ if ((tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub) > 0 && (tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub) > minAccettable) {
275
+ return reply.status(403).send(new Error('Token too old'));
276
+ }
277
+ const refreshTokenData = yield reply.server.jwt['refreshToken'].verify(refreshToken);
278
+ if ((tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub) && (tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub) !== (refreshTokenData === null || refreshTokenData === void 0 ? void 0 : refreshTokenData.sub)) {
279
+ return reply.status(403).send(new Error('Mismatched tokens'));
280
+ }
281
+ const user = yield req.server['userManager'].retrieveUserByExternalId(tokenData.sub);
282
+ const isValid = yield req.server['userManager'].isValidUser(user);
283
+ if (!isValid) {
284
+ return reply.status(403).send(new Error('Wrong refresh token'));
285
+ }
286
+ const newToken = yield reply.jwtSign({ sub: user.externalId });
287
+ return {
288
+ token: newToken
289
+ };
290
+ });
291
+ }
292
+ exports.refreshToken = refreshToken;
293
+ function invalidateTokens(req, reply) {
294
+ return __awaiter(this, void 0, void 0, function* () {
295
+ let isValid = yield req.server['userManager'].isValidUser(req.user);
296
+ if (!req.user || !isValid) {
297
+ return reply.status(403).send(new Error('User not linked'));
298
+ }
299
+ const user = yield req.server['userManager'].resetExternalId(req.user.getId());
300
+ isValid = yield req.server['userManager'].isValidUser(user);
301
+ return { ok: isValid };
302
+ });
303
+ }
304
+ exports.invalidateTokens = invalidateTokens;
305
+ function block(req, reply) {
306
+ return __awaiter(this, void 0, void 0, function* () {
307
+ if (!req.server['userManager'].isImplemented()) {
308
+ throw new Error('Not implemented');
309
+ }
310
+ if (!req.hasRole(roles.admin) && !req.hasRole(roles.backoffice)) {
311
+ return reply.status(403).send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to block a user' });
312
+ }
313
+ const { id: userId } = req.parameters();
314
+ const { reason } = req.data();
315
+ let user = yield req.server['userManager'].blockUserById(userId, reason);
316
+ user = yield req.server['userManager'].resetExternalId(user.getId());
317
+ return { ok: !!user.getId() };
318
+ });
319
+ }
320
+ exports.block = block;
321
+ function unblock(req, reply) {
322
+ return __awaiter(this, void 0, void 0, function* () {
323
+ if (!req.server['userManager'].isImplemented()) {
324
+ throw new Error('Not implemented');
325
+ }
326
+ if (!req.hasRole(roles.admin) && !req.hasRole(roles.backoffice)) {
327
+ return reply
328
+ .status(403)
329
+ .send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to unblock a user' });
330
+ }
331
+ const { id: userId } = req.parameters();
332
+ const user = yield req.server['userManager'].unblockUserById(userId);
333
+ return { ok: !!user.getId() };
334
+ });
335
+ }
336
+ exports.unblock = unblock;
337
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../lib/api/auth/controller/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ module.exports = {
3
+ config: {
4
+ title: 'Authentication functions',
5
+ description: 'Authentication functions',
6
+ controller: 'controller',
7
+ tags: ['auth'],
8
+ deprecated: false,
9
+ version: false,
10
+ enable: true
11
+ },
12
+ routes: [
13
+ {
14
+ method: 'POST',
15
+ path: '/register',
16
+ roles: [],
17
+ handler: 'auth.register',
18
+ middlewares: ['global.preAuth', 'global.postAuth'],
19
+ config: {
20
+ title: 'Register new user',
21
+ description: 'Register a new user',
22
+ body: { $ref: 'authRegisterBodySchema#' },
23
+ response: {
24
+ 200: { $ref: 'authRegisterResponseSchema#' }
25
+ }
26
+ }
27
+ },
28
+ {
29
+ method: 'POST',
30
+ path: '/unregister',
31
+ roles: [],
32
+ handler: 'auth.unregister',
33
+ middlewares: ['global.preAuth', 'global.postAuth'],
34
+ config: {
35
+ title: 'Unregister existing user (actually disables it)',
36
+ description: 'Unregister an existing user (actually disables it)',
37
+ body: { $ref: 'authLoginBodySchema#' },
38
+ response: {
39
+ 200: { $ref: 'defaultResponse#' }
40
+ }
41
+ }
42
+ },
43
+ {
44
+ method: 'POST',
45
+ path: '/validate-password',
46
+ roles: [],
47
+ handler: 'auth.validatePassword',
48
+ middlewares: [],
49
+ config: {
50
+ title: 'Validate password',
51
+ description: 'Validate password if valid and usable',
52
+ body: { $ref: 'onlyPasswordSchema#' },
53
+ response: {
54
+ 200: { $ref: 'defaultResponse#' }
55
+ }
56
+ }
57
+ },
58
+ {
59
+ method: 'POST',
60
+ path: '/change-password',
61
+ roles: [],
62
+ handler: 'auth.changePassword',
63
+ middlewares: [],
64
+ config: {
65
+ title: 'Change password',
66
+ description: 'Change password for an existing user',
67
+ body: { $ref: 'authChangePasswordBodySchema#' },
68
+ response: {
69
+ 200: { $ref: 'defaultResponse#' }
70
+ }
71
+ }
72
+ },
73
+ {
74
+ method: 'POST',
75
+ path: '/forgot-password',
76
+ roles: [],
77
+ handler: 'auth.forgotPassword',
78
+ middlewares: ['global.preForgotPasswordHandler', 'global.dispatchForgotPasswordLink'],
79
+ config: {
80
+ title: 'Forgot password',
81
+ description: 'Forgot password for an existing user given the email or username',
82
+ body: { $ref: 'authForgotPasswordBodySchema#' },
83
+ response: {
84
+ 200: { $ref: 'defaultResponse#' }
85
+ }
86
+ }
87
+ },
88
+ {
89
+ method: 'POST',
90
+ path: '/confirm-email',
91
+ roles: [],
92
+ handler: 'auth.confirmEmail',
93
+ middlewares: [],
94
+ config: {
95
+ title: 'Confirm email',
96
+ description: 'Confirm email for an existing user',
97
+ body: { $ref: 'onlyCodeSchema#' },
98
+ response: {
99
+ 200: { $ref: 'defaultResponse#' }
100
+ }
101
+ }
102
+ },
103
+ {
104
+ method: 'POST',
105
+ path: '/reset-password',
106
+ roles: [],
107
+ handler: 'auth.resetPassword',
108
+ middlewares: [],
109
+ config: {
110
+ title: 'Reset password',
111
+ description: 'Reset password for an existing user given the reset token',
112
+ body: { $ref: 'resetPasswordBodySchema#' },
113
+ response: {
114
+ 200: { $ref: 'defaultResponse#' }
115
+ }
116
+ }
117
+ },
118
+ {
119
+ method: 'POST',
120
+ path: '/login',
121
+ roles: [],
122
+ handler: 'auth.login',
123
+ middlewares: ['global.preAuth', 'global.postAuth'],
124
+ config: {
125
+ title: 'Login',
126
+ description: 'Basic login authentication',
127
+ body: { $ref: 'authLoginBodySchema#' },
128
+ response: {
129
+ 200: { $ref: 'authLoginResponseSchema#' }
130
+ }
131
+ }
132
+ },
133
+ {
134
+ method: 'POST',
135
+ path: '/refresh-token',
136
+ roles: [],
137
+ handler: 'auth.refreshToken',
138
+ middlewares: [],
139
+ config: {
140
+ title: 'Refresh authentication token',
141
+ description: 'Refresh login authentication token',
142
+ body: { $ref: 'authRefreshTokenBodySchema#' },
143
+ response: {
144
+ 200: { $ref: 'authRefreshTokenResponseSchema#' }
145
+ }
146
+ }
147
+ },
148
+ {
149
+ method: 'POST',
150
+ path: '/invalidate-tokens',
151
+ roles: [],
152
+ handler: 'auth.invalidateTokens',
153
+ middlewares: ['global.isAuthenticated'],
154
+ config: {
155
+ title: 'Invalidate all tokens',
156
+ description: 'Invalidate all tokens',
157
+ response: {
158
+ 200: { $ref: 'defaultResponse#' }
159
+ }
160
+ }
161
+ },
162
+ {
163
+ method: 'POST',
164
+ path: '/block/:id',
165
+ roles: [roles.admin, roles.backoffice],
166
+ handler: 'auth.block',
167
+ middlewares: ['global.isAuthenticated'],
168
+ config: {
169
+ title: 'Block a user by id',
170
+ description: 'Block a user by id',
171
+ params: { $ref: 'onlyIdSchema#' },
172
+ body: { $ref: 'blockBodySchema#' },
173
+ response: {
174
+ 200: { $ref: 'defaultResponse#' }
175
+ }
176
+ }
177
+ },
178
+ {
179
+ method: 'POST',
180
+ path: '/unblock/:id',
181
+ roles: [roles.admin, roles.backoffice],
182
+ handler: 'auth.unblock',
183
+ middlewares: ['global.isAuthenticated'],
184
+ config: {
185
+ title: 'Unblock a user by id',
186
+ description: 'Unblock a user by id',
187
+ params: { $ref: 'onlyIdSchema#' },
188
+ response: {
189
+ 200: { $ref: 'defaultResponse#' }
190
+ }
191
+ }
192
+ }
193
+ ]
194
+ };
195
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/auth/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.check = void 0;
4
+ function check(req, reply) {
5
+ reply.send({ ok: true });
6
+ }
7
+ exports.check = check;
8
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../../lib/api/health/controller/health.ts"],"names":[],"mappings":";;;AAEA,SAAgB,KAAK,CAAC,GAAmB,EAAE,KAAmB;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;AAC1B,CAAC;AAFD,sBAEC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ module.exports = {
3
+ config: {
4
+ title: 'Health functions',
5
+ description: 'Health functions',
6
+ controller: 'controller',
7
+ tags: ['health']
8
+ },
9
+ routes: [
10
+ {
11
+ method: 'GET',
12
+ path: '/',
13
+ roles: [],
14
+ handler: 'health.check',
15
+ middlewares: [],
16
+ config: {
17
+ title: 'Health check service',
18
+ description: 'Health check service',
19
+ response: {
20
+ 200: { $ref: 'defaultResponse#' }
21
+ }
22
+ }
23
+ }
24
+ ]
25
+ };
26
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/health/routes.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kBAAkB;QAC/B,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,EAAE;YACf,MAAM,EAAE;gBACN,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,sBAAsB;gBACnC,QAAQ,EAAE;oBACR,GAAG,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;iBAClC;aACF;SACF;KACF;CACF,CAAA"}