@flowerforce/flowerbase 1.7.5 → 1.7.6-beta.0
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/dist/auth/controller.d.ts.map +1 -1
- package/dist/auth/controller.js +11 -10
- package/dist/auth/plugins/jwt.js +1 -1
- package/dist/auth/providers/anon-user/controller.js +1 -1
- package/dist/auth/providers/custom-function/controller.d.ts.map +1 -1
- package/dist/auth/providers/custom-function/controller.js +36 -10
- package/dist/auth/providers/local-userpass/controller.d.ts.map +1 -1
- package/dist/auth/providers/local-userpass/controller.js +15 -14
- package/dist/auth/utils.d.ts +1 -0
- package/dist/auth/utils.d.ts.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -3
- package/dist/features/triggers/index.js +1 -1
- package/dist/features/triggers/utils.d.ts.map +1 -1
- package/dist/features/triggers/utils.js +38 -30
- package/dist/monitoring/routes/users.d.ts.map +1 -1
- package/dist/monitoring/routes/users.js +7 -6
- package/dist/monitoring/utils.d.ts.map +1 -1
- package/dist/monitoring/utils.js +5 -4
- package/dist/services/api/index.d.ts +4 -0
- package/dist/services/api/index.d.ts.map +1 -1
- package/dist/services/api/utils.d.ts +1 -0
- package/dist/services/api/utils.d.ts.map +1 -1
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/shared/handleUserDeletion.js +1 -1
- package/dist/shared/handleUserRegistration.js +2 -2
- package/dist/utils/context/helpers.d.ts +12 -0
- package/dist/utils/context/helpers.d.ts.map +1 -1
- package/dist/utils/initializer/exposeRoutes.js +1 -1
- package/dist/utils/rules-matcher/interface.d.ts +5 -1
- package/dist/utils/rules-matcher/interface.d.ts.map +1 -1
- package/dist/utils/rules-matcher/interface.js +2 -0
- package/dist/utils/rules-matcher/utils.d.ts.map +1 -1
- package/dist/utils/rules-matcher/utils.js +51 -16
- package/package.json +1 -1
- package/src/auth/__tests__/controller.test.ts +1 -0
- package/src/auth/controller.ts +12 -11
- package/src/auth/plugins/jwt.ts +2 -2
- package/src/auth/providers/anon-user/__tests__/controller.test.ts +1 -0
- package/src/auth/providers/anon-user/controller.ts +2 -2
- package/src/auth/providers/custom-function/controller.ts +39 -12
- package/src/auth/providers/local-userpass/controller.ts +16 -15
- package/src/auth/utils.ts +1 -0
- package/src/constants.ts +3 -2
- package/src/features/triggers/__tests__/index.test.ts +1 -0
- package/src/features/triggers/index.ts +2 -2
- package/src/features/triggers/utils.ts +42 -31
- package/src/monitoring/routes/users.ts +8 -7
- package/src/monitoring/ui.css +5 -1
- package/src/monitoring/ui.events.js +2 -2
- package/src/monitoring/ui.shared.js +2 -1
- package/src/monitoring/utils.ts +6 -5
- package/src/shared/handleUserDeletion.ts +2 -2
- package/src/shared/handleUserRegistration.ts +3 -3
- package/src/utils/__tests__/operators.test.ts +24 -0
- package/src/utils/__tests__/rule.test.ts +39 -0
- package/src/utils/__tests__/rulesMatcherInterfaces.test.ts +2 -0
- package/src/utils/initializer/exposeRoutes.ts +2 -2
- package/src/utils/rules-matcher/interface.ts +5 -1
- package/src/utils/rules-matcher/utils.ts +78 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/auth/controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBzC;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/auth/controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBzC;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,eAAe,iBA2LxD"}
|
package/dist/auth/controller.js
CHANGED
|
@@ -30,16 +30,17 @@ const unauthorizedSessionError = {
|
|
|
30
30
|
function authController(app) {
|
|
31
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
32
|
const { authCollection, userCollection, refreshTokensCollection } = constants_1.AUTH_CONFIG;
|
|
33
|
-
const
|
|
33
|
+
const authDb = app.mongo.client.db(constants_1.AUTH_DB_NAME);
|
|
34
|
+
const customUserDb = app.mongo.client.db(constants_1.DB_NAME);
|
|
34
35
|
const refreshTokenTtlMs = constants_1.DEFAULT_CONFIG.REFRESH_TOKEN_TTL_DAYS * 24 * 60 * 60 * 1000;
|
|
35
36
|
try {
|
|
36
|
-
yield
|
|
37
|
+
yield authDb.collection(refreshTokensCollection).createIndex({ expiresAt: 1 }, { expireAfterSeconds: 0 });
|
|
37
38
|
}
|
|
38
39
|
catch (error) {
|
|
39
40
|
console.error('Failed to ensure refresh token TTL index', error);
|
|
40
41
|
}
|
|
41
42
|
try {
|
|
42
|
-
yield
|
|
43
|
+
yield authDb.collection(authCollection).createIndex({ email: 1 }, {
|
|
43
44
|
unique: true
|
|
44
45
|
});
|
|
45
46
|
}
|
|
@@ -64,11 +65,11 @@ function authController(app) {
|
|
|
64
65
|
if (req.user.typ !== 'access') {
|
|
65
66
|
throw new Error('Access token required');
|
|
66
67
|
}
|
|
67
|
-
const authUser = yield
|
|
68
|
+
const authUser = yield authDb
|
|
68
69
|
.collection(authCollection)
|
|
69
70
|
.findOne({ _id: bson_1.ObjectId.createFromHexString(req.user.id) });
|
|
70
71
|
const customData = userCollection && constants_1.AUTH_CONFIG.user_id_field
|
|
71
|
-
? yield
|
|
72
|
+
? yield customUserDb
|
|
72
73
|
.collection(userCollection)
|
|
73
74
|
.findOne({ [constants_1.AUTH_CONFIG.user_id_field]: req.user.id })
|
|
74
75
|
: null;
|
|
@@ -112,7 +113,7 @@ function authController(app) {
|
|
|
112
113
|
}
|
|
113
114
|
const refreshToken = authHeader.slice('Bearer '.length).trim();
|
|
114
115
|
const refreshTokenHash = (0, crypto_1.hashToken)(refreshToken);
|
|
115
|
-
const storedToken = yield
|
|
116
|
+
const storedToken = yield authDb.collection(refreshTokensCollection).findOne({
|
|
116
117
|
tokenHash: refreshTokenHash,
|
|
117
118
|
revokedAt: null,
|
|
118
119
|
expiresAt: { $gt: new Date() }
|
|
@@ -121,13 +122,13 @@ function authController(app) {
|
|
|
121
122
|
res.code(401).send(unauthorizedSessionError);
|
|
122
123
|
return;
|
|
123
124
|
}
|
|
124
|
-
const auth_user = yield (
|
|
125
|
+
const auth_user = yield (authDb === null || authDb === void 0 ? void 0 : authDb.collection(authCollection).findOne({ _id: new this.mongo.ObjectId(req.user.sub) }));
|
|
125
126
|
if (!auth_user) {
|
|
126
127
|
res.code(401).send(unauthorizedSessionError);
|
|
127
128
|
return;
|
|
128
129
|
}
|
|
129
130
|
const user = userCollection && constants_1.AUTH_CONFIG.user_id_field
|
|
130
|
-
? (yield
|
|
131
|
+
? (yield customUserDb.collection(userCollection).findOne({ [constants_1.AUTH_CONFIG.user_id_field]: req.user.sub }))
|
|
131
132
|
: {};
|
|
132
133
|
res.status(201);
|
|
133
134
|
return {
|
|
@@ -154,7 +155,7 @@ function authController(app) {
|
|
|
154
155
|
const refreshTokenHash = (0, crypto_1.hashToken)(refreshToken);
|
|
155
156
|
const now = new Date();
|
|
156
157
|
const expiresAt = new Date(Date.now() + refreshTokenTtlMs);
|
|
157
|
-
const updateResult = yield
|
|
158
|
+
const updateResult = yield authDb.collection(refreshTokensCollection).findOneAndUpdate({ tokenHash: refreshTokenHash }, {
|
|
158
159
|
$set: {
|
|
159
160
|
revokedAt: now,
|
|
160
161
|
expiresAt
|
|
@@ -171,7 +172,7 @@ function authController(app) {
|
|
|
171
172
|
}
|
|
172
173
|
}
|
|
173
174
|
if (userId && authCollection) {
|
|
174
|
-
yield
|
|
175
|
+
yield authDb.collection(authCollection).updateOne({ _id: userId }, { $set: { lastLogoutAt: now } });
|
|
175
176
|
}
|
|
176
177
|
return { status: 'ok' };
|
|
177
178
|
});
|
package/dist/auth/plugins/jwt.js
CHANGED
|
@@ -51,7 +51,7 @@ exports.default = (0, fastify_plugin_1.default)(function (fastify, opts) {
|
|
|
51
51
|
if (((_a = request.user) === null || _a === void 0 ? void 0 : _a.typ) !== 'access') {
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
const db = (_c = (_b = fastify.mongo) === null || _b === void 0 ? void 0 : _b.client) === null || _c === void 0 ? void 0 : _c.db(constants_1.
|
|
54
|
+
const db = (_c = (_b = fastify.mongo) === null || _b === void 0 ? void 0 : _b.client) === null || _c === void 0 ? void 0 : _c.db(constants_1.AUTH_DB_NAME);
|
|
55
55
|
if (!db) {
|
|
56
56
|
fastify.log.warn('Mongo client unavailable while checking logout state');
|
|
57
57
|
return;
|
|
@@ -22,7 +22,7 @@ const utils_1 = require("../../utils");
|
|
|
22
22
|
*/
|
|
23
23
|
function anonUserController(app) {
|
|
24
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
-
const db = app.mongo.client.db(constants_1.
|
|
25
|
+
const db = app.mongo.client.db(constants_1.AUTH_DB_NAME);
|
|
26
26
|
const { authCollection, refreshTokensCollection } = constants_1.AUTH_CONFIG;
|
|
27
27
|
const refreshTokenTtlMs = constants_1.DEFAULT_CONFIG.REFRESH_TOKEN_TTL_DAYS * 24 * 60 * 60 * 1000;
|
|
28
28
|
const anonUserTtlSeconds = constants_1.DEFAULT_CONFIG.ANON_USER_TTL_SECONDS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/custom-function/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/custom-function/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAUzC;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,eAAe,iBA2IlE"}
|
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.customFunctionController = customFunctionController;
|
|
13
|
+
const mongodb_1 = require("mongodb");
|
|
13
14
|
const constants_1 = require("../../../constants");
|
|
14
15
|
const state_1 = require("../../../state");
|
|
15
16
|
const context_1 = require("../../../utils/context");
|
|
@@ -25,7 +26,8 @@ function customFunctionController(app) {
|
|
|
25
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
27
|
const functionsList = state_1.StateManager.select('functions');
|
|
27
28
|
const services = state_1.StateManager.select('services');
|
|
28
|
-
const
|
|
29
|
+
const authDb = app.mongo.client.db(constants_1.AUTH_DB_NAME);
|
|
30
|
+
const customUserDb = app.mongo.client.db(constants_1.DB_NAME);
|
|
29
31
|
const { authCollection, refreshTokensCollection, userCollection, user_id_field } = constants_1.AUTH_CONFIG;
|
|
30
32
|
const refreshTokenTtlMs = constants_1.DEFAULT_CONFIG.REFRESH_TOKEN_TTL_DAYS * 24 * 60 * 60 * 1000;
|
|
31
33
|
/**
|
|
@@ -36,10 +38,13 @@ function customFunctionController(app) {
|
|
|
36
38
|
* @returns {Promise<Object>} A promise resolving with access and refresh tokens.
|
|
37
39
|
*/
|
|
38
40
|
app.post(utils_1.AUTH_ENDPOINTS.LOGIN, {
|
|
39
|
-
schema: schema_1.LOGIN_SCHEMA
|
|
41
|
+
schema: schema_1.LOGIN_SCHEMA,
|
|
42
|
+
errorHandler: (_error, _request, reply) => {
|
|
43
|
+
reply.code(500).send({ message: 'Internal Server Error' });
|
|
44
|
+
}
|
|
40
45
|
}, function (req, reply) {
|
|
41
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
var _a, _b;
|
|
47
|
+
var _a, _b, _c;
|
|
43
48
|
const customFunctionProvider = (_a = constants_1.AUTH_CONFIG.authProviders) === null || _a === void 0 ? void 0 : _a['custom-function'];
|
|
44
49
|
if (!customFunctionProvider || customFunctionProvider.disabled) {
|
|
45
50
|
throw new Error('Custom function authentication disabled');
|
|
@@ -75,13 +80,32 @@ function customFunctionController(app) {
|
|
|
75
80
|
reply.code(401).send({ message: 'Unauthorized' });
|
|
76
81
|
return;
|
|
77
82
|
}
|
|
78
|
-
const
|
|
83
|
+
const email = (_c = authResult.email) !== null && _c !== void 0 ? _c : authResult.id;
|
|
84
|
+
let authUser = yield authDb.collection(authCollection).findOne({ email });
|
|
79
85
|
if (!authUser) {
|
|
80
|
-
|
|
81
|
-
|
|
86
|
+
const authUserId = new mongodb_1.ObjectId();
|
|
87
|
+
yield authDb.collection(authCollection).insertOne({
|
|
88
|
+
_id: authUserId,
|
|
89
|
+
email,
|
|
90
|
+
status: 'confirmed',
|
|
91
|
+
createdAt: new Date(),
|
|
92
|
+
custom_data: {},
|
|
93
|
+
identities: [
|
|
94
|
+
{
|
|
95
|
+
id: authResult.id.toString(),
|
|
96
|
+
provider_id: authResult.id.toString(),
|
|
97
|
+
provider_type: 'custom-function',
|
|
98
|
+
provider_data: { email }
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
});
|
|
102
|
+
authUser = {
|
|
103
|
+
_id: authUserId,
|
|
104
|
+
email
|
|
105
|
+
};
|
|
82
106
|
}
|
|
83
107
|
const user = user_id_field && userCollection
|
|
84
|
-
? yield
|
|
108
|
+
? yield customUserDb
|
|
85
109
|
.collection(userCollection)
|
|
86
110
|
.findOne({ [user_id_field]: authUser._id.toString() })
|
|
87
111
|
: {};
|
|
@@ -92,19 +116,21 @@ function customFunctionController(app) {
|
|
|
92
116
|
};
|
|
93
117
|
const refreshToken = this.createRefreshToken(currentUserData);
|
|
94
118
|
const refreshTokenHash = (0, crypto_1.hashToken)(refreshToken);
|
|
95
|
-
yield
|
|
119
|
+
yield authDb.collection(refreshTokensCollection).insertOne({
|
|
96
120
|
userId: authUser._id,
|
|
97
121
|
tokenHash: refreshTokenHash,
|
|
98
122
|
createdAt: new Date(),
|
|
99
123
|
expiresAt: new Date(Date.now() + refreshTokenTtlMs),
|
|
100
124
|
revokedAt: null
|
|
101
125
|
});
|
|
102
|
-
|
|
103
|
-
|
|
126
|
+
const accessToken = this.createAccessToken(currentUserData);
|
|
127
|
+
const responsePayload = {
|
|
128
|
+
access_token: accessToken,
|
|
104
129
|
refresh_token: refreshToken,
|
|
105
130
|
device_id: '',
|
|
106
131
|
user_id: authUser._id.toString()
|
|
107
132
|
};
|
|
133
|
+
reply.code(200).send(responsePayload);
|
|
108
134
|
});
|
|
109
135
|
});
|
|
110
136
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/local-userpass/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAqCzC;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/local-userpass/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAqCzC;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,eAAe,iBAqXjE"}
|
|
@@ -40,7 +40,8 @@ function localUserPassController(app) {
|
|
|
40
40
|
const { authCollection, userCollection, user_id_field } = constants_1.AUTH_CONFIG;
|
|
41
41
|
const { resetPasswordCollection } = constants_1.AUTH_CONFIG;
|
|
42
42
|
const { refreshTokensCollection } = constants_1.AUTH_CONFIG;
|
|
43
|
-
const
|
|
43
|
+
const authDb = app.mongo.client.db(constants_1.AUTH_DB_NAME);
|
|
44
|
+
const customUserDb = app.mongo.client.db(constants_1.DB_NAME);
|
|
44
45
|
const resetPasswordTtlSeconds = constants_1.DEFAULT_CONFIG.RESET_PASSWORD_TTL_SECONDS;
|
|
45
46
|
const rateLimitWindowMs = constants_1.DEFAULT_CONFIG.AUTH_RATE_LIMIT_WINDOW_MS;
|
|
46
47
|
const loginMaxAttempts = constants_1.DEFAULT_CONFIG.AUTH_LOGIN_MAX_ATTEMPTS;
|
|
@@ -49,20 +50,20 @@ function localUserPassController(app) {
|
|
|
49
50
|
const refreshTokenTtlMs = constants_1.DEFAULT_CONFIG.REFRESH_TOKEN_TTL_DAYS * 24 * 60 * 60 * 1000;
|
|
50
51
|
const resolveLocalUserpassProvider = () => { var _a; return (_a = constants_1.AUTH_CONFIG.authProviders) === null || _a === void 0 ? void 0 : _a['local-userpass']; };
|
|
51
52
|
try {
|
|
52
|
-
yield
|
|
53
|
+
yield authDb.collection(resetPasswordCollection).createIndex({ createdAt: 1 }, { expireAfterSeconds: resetPasswordTtlSeconds });
|
|
53
54
|
}
|
|
54
55
|
catch (error) {
|
|
55
56
|
console.error('Failed to ensure reset password TTL index', error);
|
|
56
57
|
}
|
|
57
58
|
try {
|
|
58
|
-
yield
|
|
59
|
+
yield authDb.collection(refreshTokensCollection).createIndex({ expiresAt: 1 }, { expireAfterSeconds: 0 });
|
|
59
60
|
}
|
|
60
61
|
catch (error) {
|
|
61
62
|
console.error('Failed to ensure refresh token TTL index', error);
|
|
62
63
|
}
|
|
63
64
|
const handleResetPasswordRequest = (email, password, extraArguments) => __awaiter(this, void 0, void 0, function* () {
|
|
64
65
|
const { resetPasswordConfig } = constants_1.AUTH_CONFIG;
|
|
65
|
-
const authUser = yield
|
|
66
|
+
const authUser = yield authDb.collection(authCollection).findOne({
|
|
66
67
|
email
|
|
67
68
|
});
|
|
68
69
|
if (!authUser) {
|
|
@@ -70,7 +71,7 @@ function localUserPassController(app) {
|
|
|
70
71
|
}
|
|
71
72
|
const token = (0, crypto_1.generateToken)();
|
|
72
73
|
const tokenId = (0, crypto_1.generateToken)();
|
|
73
|
-
yield (
|
|
74
|
+
yield (authDb === null || authDb === void 0 ? void 0 : authDb.collection(resetPasswordCollection).updateOne({ email }, { $set: { token, tokenId, email, createdAt: new Date() } }, { upsert: true }));
|
|
74
75
|
if (!resetPasswordConfig.runResetFunction && !resetPasswordConfig.resetFunctionName) {
|
|
75
76
|
throw new Error(utils_1.AUTH_ERRORS.MISSING_RESET_FUNCTION);
|
|
76
77
|
}
|
|
@@ -156,7 +157,7 @@ function localUserPassController(app) {
|
|
|
156
157
|
res.status(429).send({ message: 'Too many requests' });
|
|
157
158
|
return;
|
|
158
159
|
}
|
|
159
|
-
const existing = yield
|
|
160
|
+
const existing = yield authDb.collection(authCollection).findOne({
|
|
160
161
|
confirmationToken: req.body.token,
|
|
161
162
|
confirmationTokenId: req.body.tokenId
|
|
162
163
|
});
|
|
@@ -165,7 +166,7 @@ function localUserPassController(app) {
|
|
|
165
166
|
throw new Error(utils_1.AUTH_ERRORS.INVALID_TOKEN);
|
|
166
167
|
}
|
|
167
168
|
if (existing.status !== 'confirmed') {
|
|
168
|
-
yield
|
|
169
|
+
yield authDb.collection(authCollection).updateOne({ _id: existing._id }, {
|
|
169
170
|
$set: { status: 'confirmed' },
|
|
170
171
|
$unset: { confirmationToken: '', confirmationTokenId: '' }
|
|
171
172
|
});
|
|
@@ -193,7 +194,7 @@ function localUserPassController(app) {
|
|
|
193
194
|
res.status(429).send({ message: 'Too many requests' });
|
|
194
195
|
return;
|
|
195
196
|
}
|
|
196
|
-
const authUser = yield
|
|
197
|
+
const authUser = yield authDb.collection(authCollection).findOne({
|
|
197
198
|
email: req.body.username
|
|
198
199
|
});
|
|
199
200
|
if (!authUser) {
|
|
@@ -204,7 +205,7 @@ function localUserPassController(app) {
|
|
|
204
205
|
throw new Error(utils_1.AUTH_ERRORS.INVALID_CREDENTIALS);
|
|
205
206
|
}
|
|
206
207
|
const user = user_id_field && userCollection
|
|
207
|
-
? yield
|
|
208
|
+
? yield customUserDb
|
|
208
209
|
.collection(userCollection)
|
|
209
210
|
.findOne({ [user_id_field]: authUser._id.toString() })
|
|
210
211
|
: {};
|
|
@@ -215,7 +216,7 @@ function localUserPassController(app) {
|
|
|
215
216
|
}
|
|
216
217
|
const refreshToken = this.createRefreshToken(userWithCustomData);
|
|
217
218
|
const refreshTokenHash = (0, crypto_1.hashToken)(refreshToken);
|
|
218
|
-
yield
|
|
219
|
+
yield authDb.collection(refreshTokensCollection).insertOne({
|
|
219
220
|
userId: authUser._id,
|
|
220
221
|
tokenHash: refreshTokenHash,
|
|
221
222
|
createdAt: new Date(),
|
|
@@ -298,7 +299,7 @@ function localUserPassController(app) {
|
|
|
298
299
|
return { message: 'Too many requests' };
|
|
299
300
|
}
|
|
300
301
|
const { token, tokenId, password } = req.body;
|
|
301
|
-
const resetRequest = yield (
|
|
302
|
+
const resetRequest = yield (authDb === null || authDb === void 0 ? void 0 : authDb.collection(resetPasswordCollection).findOne({ token, tokenId }));
|
|
302
303
|
if (!resetRequest) {
|
|
303
304
|
throw new Error(utils_1.AUTH_ERRORS.INVALID_RESET_PARAMS);
|
|
304
305
|
}
|
|
@@ -307,16 +308,16 @@ function localUserPassController(app) {
|
|
|
307
308
|
Number.isNaN(createdAt.getTime()) ||
|
|
308
309
|
Date.now() - createdAt.getTime() > resetPasswordTtlSeconds * 1000;
|
|
309
310
|
if (isExpired) {
|
|
310
|
-
yield (
|
|
311
|
+
yield (authDb === null || authDb === void 0 ? void 0 : authDb.collection(resetPasswordCollection).deleteOne({ _id: resetRequest._id }));
|
|
311
312
|
throw new Error(utils_1.AUTH_ERRORS.INVALID_RESET_PARAMS);
|
|
312
313
|
}
|
|
313
314
|
const hashedPassword = yield (0, crypto_1.hashPassword)(password);
|
|
314
|
-
yield
|
|
315
|
+
yield authDb.collection(authCollection).updateOne({ email: resetRequest.email }, {
|
|
315
316
|
$set: {
|
|
316
317
|
password: hashedPassword
|
|
317
318
|
}
|
|
318
319
|
});
|
|
319
|
-
yield (
|
|
320
|
+
yield (authDb === null || authDb === void 0 ? void 0 : authDb.collection(resetPasswordCollection).deleteOne({ _id: resetRequest._id }));
|
|
320
321
|
});
|
|
321
322
|
});
|
|
322
323
|
});
|
package/dist/auth/utils.d.ts
CHANGED
package/dist/auth/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/auth/utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc;;;CAA4C,CAAC;AACxE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CAexB,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAgB7B,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;CAWhC,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;CAU/B,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAAoB,CAAA;AAE7C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAe/B,CAAA;AAED,oBAAY,cAAc;IACxB,KAAK,WAAW;IAChB,YAAY,cAAc;IAC1B,OAAO,aAAa;IACpB,OAAO,aAAa;IACpB,OAAO,aAAa;IACpB,KAAK,gBAAgB;IACrB,UAAU,gBAAgB;IAC1B,aAAa,WAAW;IACxB,UAAU,sBAAsB;CACjC;AAED,oBAAY,WAAW;IACrB,mBAAmB,wBAAwB;IAC3C,aAAa,mCAAmC;IAChD,oBAAoB,sCAAsC;IAC1D,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;CAC1C;AAED,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,aAAa,CAAA;IAC/B,iBAAiB,EAAE,cAAc,CAAA;IACjC,WAAW,CAAC,EAAE,QAAQ,CAAA;CACvB;AAED,UAAU,MAAM;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;CAClB;AACD,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE;QACN,kBAAkB,EAAE,MAAM,CAAA;KAC3B,CAAA;CACF;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,OAAO,CAAA;IAChC,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,8BAA8B,EAAE,MAAM,CAAA;CACvC;AAMD;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,UAuCjC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,oBAarC,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,eAAW,WAG3C,CAAA"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/auth/utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc;;;CAA4C,CAAC;AACxE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CAexB,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAgB7B,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;CAWhC,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;CAU/B,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAAoB,CAAA;AAE7C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAe/B,CAAA;AAED,oBAAY,cAAc;IACxB,KAAK,WAAW;IAChB,YAAY,cAAc;IAC1B,OAAO,aAAa;IACpB,OAAO,aAAa;IACpB,OAAO,aAAa;IACpB,KAAK,gBAAgB;IACrB,UAAU,gBAAgB;IAC1B,aAAa,WAAW;IACxB,UAAU,sBAAsB;CACjC;AAED,oBAAY,WAAW;IACrB,mBAAmB,wBAAwB;IAC3C,aAAa,mCAAmC;IAChD,oBAAoB,sCAAsC;IAC1D,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;CAC1C;AAED,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,aAAa,CAAA;IAC/B,iBAAiB,EAAE,cAAc,CAAA;IACjC,WAAW,CAAC,EAAE,QAAQ,CAAA;CACvB;AAED,UAAU,MAAM;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;CAClB;AACD,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE;QACN,kBAAkB,EAAE,MAAM,CAAA;KAC3B,CAAA;CACF;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,OAAO,CAAA;IAChC,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,8BAA8B,EAAE,MAAM,CAAA;CACvC;AAMD;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,UAuCjC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,oBAarC,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,eAAW,WAG3C,CAAA"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ export declare const DEFAULT_CONFIG: {
|
|
|
37
37
|
export declare const API_VERSION: string;
|
|
38
38
|
export declare const HTTPS_SCHEMA: string;
|
|
39
39
|
export declare const DB_NAME: string;
|
|
40
|
+
export declare const AUTH_DB_NAME: string;
|
|
40
41
|
type AuthProviders = Record<string, {
|
|
41
42
|
disabled?: boolean;
|
|
42
43
|
config?: unknown;
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAsBpC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCsB,eAAe,EAAE;;CAEjE,CAAA;AACD,eAAO,MAAM,WAAW,QAA8C,CAAA;AACtE,eAAO,MAAM,YAAY,QAA8B,CAAA;AACvD,eAAO,MAAM,OAAO,QAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAsBpC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCsB,eAAe,EAAE;;CAEjE,CAAA;AACD,eAAO,MAAM,WAAW,QAA8C,CAAA;AACtE,eAAO,MAAM,YAAY,QAA8B,CAAA;AACvD,eAAO,MAAM,OAAO,QAAgB,CAAA;AACpC,eAAO,MAAM,YAAY,QAAiC,CAAA;AAE1D,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAE7E,eAAO,MAAM,WAAW;;;;;;;mBAOqB,aAAa;;;;;;;;;CAOzD,CAAA;AAID,eAAO,MAAM,SAAS;;;CAGrB,CAAA"}
|
package/dist/constants.js
CHANGED
|
@@ -12,7 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
};
|
|
13
13
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.S3_CONFIG = exports.AUTH_CONFIG = exports.DB_NAME = exports.HTTPS_SCHEMA = exports.API_VERSION = exports.DEFAULT_CONFIG = void 0;
|
|
15
|
+
exports.S3_CONFIG = exports.AUTH_CONFIG = exports.AUTH_DB_NAME = exports.DB_NAME = exports.HTTPS_SCHEMA = exports.API_VERSION = exports.DEFAULT_CONFIG = void 0;
|
|
16
16
|
const utils_1 = require("./auth/utils");
|
|
17
17
|
const parseBoolean = (value) => {
|
|
18
18
|
if (!value)
|
|
@@ -25,8 +25,8 @@ const monitEnabledEnv = process.env.MONIT_ENABLED;
|
|
|
25
25
|
const monitEnabled = typeof monitEnabledEnv === 'string'
|
|
26
26
|
? parseBoolean(monitEnabledEnv)
|
|
27
27
|
: false;
|
|
28
|
-
const { database_name, collection_name = 'users', user_id_field = 'id', on_user_creation_function_name } = (0, utils_1.loadCustomUserData)();
|
|
29
|
-
const _j = (0, utils_1.loadAuthConfig)(), { auth_collection = 'auth_users' } = _j, configuration = __rest(_j, ["auth_collection"]);
|
|
28
|
+
const { database_name = 'main', collection_name = 'users', user_id_field = 'id', on_user_creation_function_name } = (0, utils_1.loadCustomUserData)();
|
|
29
|
+
const _j = (0, utils_1.loadAuthConfig)(), { auth_collection = 'auth_users', auth_database } = _j, configuration = __rest(_j, ["auth_collection", "auth_database"]);
|
|
30
30
|
exports.DEFAULT_CONFIG = {
|
|
31
31
|
PORT: Number(process.env.PORT) || 3000,
|
|
32
32
|
MONGODB_URL: process.env.MONGODB_URL || '',
|
|
@@ -68,6 +68,7 @@ exports.DEFAULT_CONFIG = {
|
|
|
68
68
|
exports.API_VERSION = `/api/client/${exports.DEFAULT_CONFIG.API_VERSION}`;
|
|
69
69
|
exports.HTTPS_SCHEMA = exports.DEFAULT_CONFIG.HTTPS_SCHEMA;
|
|
70
70
|
exports.DB_NAME = database_name;
|
|
71
|
+
exports.AUTH_DB_NAME = auth_database !== null && auth_database !== void 0 ? auth_database : database_name;
|
|
71
72
|
// TODO spostare nell'oggetto providers anche le altre configurazioni
|
|
72
73
|
exports.AUTH_CONFIG = {
|
|
73
74
|
authCollection: auth_collection,
|
|
@@ -50,7 +50,7 @@ const activateTriggers = (_a) => __awaiter(void 0, [_a], void 0, function* ({ fa
|
|
|
50
50
|
config: {
|
|
51
51
|
isAutoTrigger: true,
|
|
52
52
|
collection: (_e = constants_1.AUTH_CONFIG.authCollection) !== null && _e !== void 0 ? _e : 'auth_users',
|
|
53
|
-
database: constants_1.
|
|
53
|
+
database: constants_1.AUTH_DB_NAME,
|
|
54
54
|
full_document: true,
|
|
55
55
|
full_document_before_change: false,
|
|
56
56
|
match: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/features/triggers/utils.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAW,QAAQ,EAAE,MAAM,aAAa,CAAA;AA0E9D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAU,gBAAuB,KAAG,OAAO,CAAC,QAAQ,CAkB5E,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/features/triggers/utils.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAW,QAAQ,EAAE,MAAM,aAAa,CAAA;AA0E9D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAU,gBAAuB,KAAG,OAAO,CAAC,QAAQ,CAkB5E,CAAA;AA0nBD,eAAO,MAAM,gBAAgB;kHAnmB1B,aAAa;iHA2gBb,aAAa;uHA1Zb,aAAa;CAsff,CAAA"}
|
|
@@ -220,11 +220,11 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
220
220
|
const { database, isAutoTrigger, operation_types = [], operation_type } = config;
|
|
221
221
|
const providerFilter = normalizeProviders((_b = config.providers) !== null && _b !== void 0 ? _b : []);
|
|
222
222
|
const authCollection = (_c = constants_1.AUTH_CONFIG.authCollection) !== null && _c !== void 0 ? _c : 'auth_users';
|
|
223
|
-
const collection = app.mongo.client.db(database || constants_1.
|
|
223
|
+
const collection = app.mongo.client.db(database || constants_1.AUTH_DB_NAME).collection(authCollection);
|
|
224
224
|
const operationCandidates = operation_type ? mapOpInverse[operation_type] : operation_types;
|
|
225
225
|
const normalizedOps = normalizeOperationTypes(operationCandidates);
|
|
226
226
|
const baseMeta = {
|
|
227
|
-
database: database || constants_1.
|
|
227
|
+
database: database || constants_1.AUTH_DB_NAME,
|
|
228
228
|
collection: authCollection,
|
|
229
229
|
operationTypes: normalizedOps,
|
|
230
230
|
providers: providerFilter,
|
|
@@ -252,6 +252,14 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
252
252
|
if (shouldIgnoreStreamError(error))
|
|
253
253
|
return;
|
|
254
254
|
console.error('Authentication trigger change stream error', error);
|
|
255
|
+
emitTriggerEvent({
|
|
256
|
+
status: 'error',
|
|
257
|
+
triggerName,
|
|
258
|
+
triggerType,
|
|
259
|
+
functionName,
|
|
260
|
+
meta: Object.assign(Object.assign({}, baseMeta), { event: 'CHANGE_STREAM' }),
|
|
261
|
+
error
|
|
262
|
+
});
|
|
255
263
|
});
|
|
256
264
|
changeStream.on('change', function (change) {
|
|
257
265
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -321,13 +329,6 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
321
329
|
updateDescription
|
|
322
330
|
};
|
|
323
331
|
try {
|
|
324
|
-
emitTriggerEvent({
|
|
325
|
-
status: 'fired',
|
|
326
|
-
triggerName,
|
|
327
|
-
triggerType,
|
|
328
|
-
functionName,
|
|
329
|
-
meta: Object.assign(Object.assign({}, baseMeta), { event: 'LOGOUT' })
|
|
330
|
-
});
|
|
331
332
|
yield (0, context_1.GenerateContext)({
|
|
332
333
|
args: [Object.assign({ user: userData }, op)],
|
|
333
334
|
app,
|
|
@@ -339,6 +340,13 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
339
340
|
services,
|
|
340
341
|
runAsSystem: true
|
|
341
342
|
});
|
|
343
|
+
emitTriggerEvent({
|
|
344
|
+
status: 'fired',
|
|
345
|
+
triggerName,
|
|
346
|
+
triggerType,
|
|
347
|
+
functionName,
|
|
348
|
+
meta: Object.assign(Object.assign({}, baseMeta), { event: 'LOGOUT' })
|
|
349
|
+
});
|
|
342
350
|
}
|
|
343
351
|
catch (error) {
|
|
344
352
|
emitTriggerEvent({
|
|
@@ -373,13 +381,6 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
373
381
|
updateDescription
|
|
374
382
|
};
|
|
375
383
|
try {
|
|
376
|
-
emitTriggerEvent({
|
|
377
|
-
status: 'fired',
|
|
378
|
-
triggerName,
|
|
379
|
-
triggerType,
|
|
380
|
-
functionName,
|
|
381
|
-
meta: Object.assign(Object.assign({}, baseMeta), { event: 'DELETE' })
|
|
382
|
-
});
|
|
383
384
|
yield (0, context_1.GenerateContext)({
|
|
384
385
|
args: isAutoTrigger ? [userData] : [Object.assign({ user: userData }, op)],
|
|
385
386
|
app,
|
|
@@ -391,6 +392,13 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
391
392
|
services,
|
|
392
393
|
runAsSystem: true
|
|
393
394
|
});
|
|
395
|
+
emitTriggerEvent({
|
|
396
|
+
status: 'fired',
|
|
397
|
+
triggerName,
|
|
398
|
+
triggerType,
|
|
399
|
+
functionName,
|
|
400
|
+
meta: Object.assign(Object.assign({}, baseMeta), { event: 'DELETE' })
|
|
401
|
+
});
|
|
394
402
|
}
|
|
395
403
|
catch (error) {
|
|
396
404
|
emitTriggerEvent({
|
|
@@ -427,13 +435,6 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
427
435
|
updateDescription
|
|
428
436
|
};
|
|
429
437
|
try {
|
|
430
|
-
emitTriggerEvent({
|
|
431
|
-
status: 'fired',
|
|
432
|
-
triggerName,
|
|
433
|
-
triggerType,
|
|
434
|
-
functionName,
|
|
435
|
-
meta: Object.assign(Object.assign({}, baseMeta), { event: 'UPDATE' })
|
|
436
|
-
});
|
|
437
438
|
yield (0, context_1.GenerateContext)({
|
|
438
439
|
args: isAutoTrigger ? [userData] : [Object.assign({ user: userData }, op)],
|
|
439
440
|
app,
|
|
@@ -445,6 +446,13 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
445
446
|
services,
|
|
446
447
|
runAsSystem: true
|
|
447
448
|
});
|
|
449
|
+
emitTriggerEvent({
|
|
450
|
+
status: 'fired',
|
|
451
|
+
triggerName,
|
|
452
|
+
triggerType,
|
|
453
|
+
functionName,
|
|
454
|
+
meta: Object.assign(Object.assign({}, baseMeta), { event: 'UPDATE' })
|
|
455
|
+
});
|
|
448
456
|
}
|
|
449
457
|
catch (error) {
|
|
450
458
|
emitTriggerEvent({
|
|
@@ -518,13 +526,6 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
518
526
|
updateDescription
|
|
519
527
|
};
|
|
520
528
|
try {
|
|
521
|
-
emitTriggerEvent({
|
|
522
|
-
status: 'fired',
|
|
523
|
-
triggerName,
|
|
524
|
-
triggerType,
|
|
525
|
-
functionName,
|
|
526
|
-
meta: Object.assign(Object.assign({}, baseMeta), { event: 'CREATE' })
|
|
527
|
-
});
|
|
528
529
|
yield (0, context_1.GenerateContext)({
|
|
529
530
|
args: isAutoTrigger ? [userData] : [Object.assign({ user: userData }, op)],
|
|
530
531
|
app,
|
|
@@ -536,6 +537,13 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
536
537
|
services,
|
|
537
538
|
runAsSystem: true
|
|
538
539
|
});
|
|
540
|
+
emitTriggerEvent({
|
|
541
|
+
status: 'fired',
|
|
542
|
+
triggerName,
|
|
543
|
+
triggerType,
|
|
544
|
+
functionName,
|
|
545
|
+
meta: Object.assign(Object.assign({}, baseMeta), { event: 'CREATE' })
|
|
546
|
+
});
|
|
539
547
|
}
|
|
540
548
|
catch (error) {
|
|
541
549
|
emitTriggerEvent({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/monitoring/routes/users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO9C,OAAO,EAAiB,YAAY,EAAY,MAAM,UAAU,CAAA;AAEhE,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;CACxC,CAAA;AAYD,eAAO,MAAM,kBAAkB,GAAI,KAAK,eAAe,EAAE,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/monitoring/routes/users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO9C,OAAO,EAAiB,YAAY,EAAY,MAAM,UAAU,CAAA;AAEhE,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;CACxC,CAAA;AAYD,eAAO,MAAM,kBAAkB,GAAI,KAAK,eAAe,EAAE,MAAM,cAAc,SAuP5E,CAAA"}
|
|
@@ -46,7 +46,8 @@ const registerUserRoutes = (app, deps) => {
|
|
|
46
46
|
const resolvedAuthLimit = Math.min(Number.isFinite(parsedAuthLimit) && parsedAuthLimit > 0 ? parsedAuthLimit : 100, 500);
|
|
47
47
|
const resolvedCustomLimit = Math.min(Number.isFinite(parsedCustomLimit) && parsedCustomLimit > 0 ? parsedCustomLimit : 25, 500);
|
|
48
48
|
const resolvedCustomPage = Math.max(Number.isFinite(parsedPage) && parsedPage > 0 ? parsedPage : 1, 1);
|
|
49
|
-
const
|
|
49
|
+
const authDb = app.mongo.client.db(constants_1.AUTH_DB_NAME);
|
|
50
|
+
const customDb = app.mongo.client.db(constants_1.DB_NAME);
|
|
50
51
|
const authCollection = (_h = constants_1.AUTH_CONFIG.authCollection) !== null && _h !== void 0 ? _h : 'auth_users';
|
|
51
52
|
const userCollection = constants_1.AUTH_CONFIG.userCollection;
|
|
52
53
|
const response = {
|
|
@@ -66,7 +67,7 @@ const registerUserRoutes = (app, deps) => {
|
|
|
66
67
|
]
|
|
67
68
|
}
|
|
68
69
|
: {};
|
|
69
|
-
const authItems = yield
|
|
70
|
+
const authItems = yield authDb
|
|
70
71
|
.collection(authCollection)
|
|
71
72
|
.find(authFilter)
|
|
72
73
|
.sort({ createdAt: -1, _id: -1 })
|
|
@@ -90,11 +91,11 @@ const registerUserRoutes = (app, deps) => {
|
|
|
90
91
|
]
|
|
91
92
|
}
|
|
92
93
|
: {};
|
|
93
|
-
const total = yield
|
|
94
|
+
const total = yield customDb.collection(userCollection).countDocuments(customFilter);
|
|
94
95
|
const totalPages = Math.max(1, Math.ceil(total / Math.max(resolvedCustomLimit, 1)));
|
|
95
96
|
const page = Math.min(resolvedCustomPage, totalPages);
|
|
96
97
|
const skip = Math.max(0, (page - 1) * resolvedCustomLimit);
|
|
97
|
-
const customItems = yield
|
|
98
|
+
const customItems = yield customDb
|
|
98
99
|
.collection(userCollection)
|
|
99
100
|
.find(customFilter)
|
|
100
101
|
.sort({ createdAt: -1, _id: -1 })
|
|
@@ -181,7 +182,7 @@ const registerUserRoutes = (app, deps) => {
|
|
|
181
182
|
reply.code(400);
|
|
182
183
|
return { error: passwordError };
|
|
183
184
|
}
|
|
184
|
-
const db = app.mongo.client.db(constants_1.
|
|
185
|
+
const db = app.mongo.client.db(constants_1.AUTH_DB_NAME);
|
|
185
186
|
const authCollection = (_a = constants_1.AUTH_CONFIG.authCollection) !== null && _a !== void 0 ? _a : 'auth_users';
|
|
186
187
|
const selector = {};
|
|
187
188
|
if (params.id && mongodb_1.ObjectId.isValid(params.id)) {
|
|
@@ -216,7 +217,7 @@ const registerUserRoutes = (app, deps) => {
|
|
|
216
217
|
var _a, _b;
|
|
217
218
|
const params = req.params;
|
|
218
219
|
const body = req.body;
|
|
219
|
-
const db = app.mongo.client.db(constants_1.
|
|
220
|
+
const db = app.mongo.client.db(constants_1.AUTH_DB_NAME);
|
|
220
221
|
const authCollection = (_a = constants_1.AUTH_CONFIG.authCollection) !== null && _a !== void 0 ? _a : 'auth_users';
|
|
221
222
|
const selector = {};
|
|
222
223
|
if (params.id && mongodb_1.ObjectId.isValid(params.id)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/monitoring/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/monitoring/utils.ts"],"names":[],"mappings":"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"}
|