@unchainedshop/core-users 2.16.2 → 2.18.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.
@@ -2,6 +2,6 @@ import { ModuleInput } from '@unchainedshop/types/core.js';
2
2
  import { User, UserQuery, UsersModule } from '@unchainedshop/types/user.js';
3
3
  import { mongodb } from '@unchainedshop/mongodb';
4
4
  export declare const removeConfidentialServiceHashes: (rawUser: User) => User;
5
- export declare const buildFindSelector: ({ includeGuests, queryString, ...rest }: UserQuery) => mongodb.Filter<User>;
5
+ export declare const buildFindSelector: ({ includeGuests, queryString, emailVerified, lastLogin, ...rest }: UserQuery) => mongodb.Filter<User>;
6
6
  export declare const configureUsersModule: ({ db, migrationRepository, }: ModuleInput<Record<string, never>>) => Promise<UsersModule>;
7
7
  //# sourceMappingURL=configureUsersModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureUsersModule.d.ts","sourceRoot":"","sources":["../../src/module/configureUsersModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiB,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG5E,OAAO,EAA0C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAsBzF,eAAO,MAAM,+BAA+B,YAAa,IAAI,KAAG,IAI/D,CAAC;AAEF,eAAO,MAAM,iBAAiB,4CAA6C,SAAS,yBAOnF,CAAC;AAOF,eAAO,MAAM,oBAAoB,iCAG9B,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAG,OAAO,CAAC,WAAW,CAsW1D,CAAC"}
1
+ {"version":3,"file":"configureUsersModule.d.ts","sourceRoot":"","sources":["../../src/module/configureUsersModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiB,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG5E,OAAO,EAA0C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAqBzF,eAAO,MAAM,+BAA+B,YAAa,IAAI,KAAG,IAI/D,CAAC;AAEF,eAAO,MAAM,iBAAiB,sEAM3B,SAAS,yBAwBX,CAAC;AAOF,eAAO,MAAM,oBAAoB,iCAG9B,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAG,OAAO,CAAC,WAAW,CA4X1D,CAAC"}
@@ -5,7 +5,6 @@ import { generateDbFilterById, buildSortOptions } from '@unchainedshop/mongodb';
5
5
  import { systemLocale } from '@unchainedshop/utils';
6
6
  import { FileDirector } from '@unchainedshop/file-upload';
7
7
  import { SortDirection } from '@unchainedshop/types/api.js';
8
- import { v4 as uuidv4 } from 'uuid';
9
8
  import { UsersCollection } from '../db/UsersCollection.js';
10
9
  import addMigrations from './addMigrations.js';
11
10
  const { Locale } = localePkg;
@@ -26,10 +25,27 @@ export const removeConfidentialServiceHashes = (rawUser) => {
26
25
  delete user?.services;
27
26
  return user;
28
27
  };
29
- export const buildFindSelector = ({ includeGuests, queryString, ...rest }) => {
28
+ export const buildFindSelector = ({ includeGuests, queryString, emailVerified, lastLogin, ...rest }) => {
30
29
  const selector = { ...rest, deleted: null };
31
30
  if (!includeGuests)
32
31
  selector.guest = { $in: [false, null] };
32
+ if (emailVerified === true) {
33
+ selector['emails.verified'] = true;
34
+ }
35
+ if (emailVerified === false) {
36
+ // We need to use $ne here else we'd also find users with many emails where one is
37
+ // unverified
38
+ selector['emails.verified'] = { $ne: true };
39
+ }
40
+ if (lastLogin?.start) {
41
+ selector['lastLogin.timestamp'] = { $exists: true };
42
+ }
43
+ if (lastLogin?.end) {
44
+ selector['lastLogin.timestamp'].$lte = new Date(lastLogin.end);
45
+ }
46
+ if (lastLogin?.start) {
47
+ selector['lastLogin.timestamp'].$gte = new Date(lastLogin.start);
48
+ }
33
49
  if (queryString) {
34
50
  selector.$text = { $search: queryString };
35
51
  }
@@ -83,7 +99,7 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
83
99
  },
84
100
  findUsers: async ({ limit, offset, ...query }) => {
85
101
  const defaultSort = [{ key: 'created', value: SortDirection.ASC }];
86
- const selector = buildFindSelector(query);
102
+ const selector = buildFindSelector({ ...query });
87
103
  if (query.queryString) {
88
104
  return Users.find(selector, {
89
105
  skip: offset,
@@ -125,9 +141,11 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
125
141
  const user = await Users.findOneAndUpdate(userFilter, modifier, {
126
142
  returnDocument: 'after',
127
143
  });
128
- await emit('USER_UPDATE_AVATAR', {
129
- user: removeConfidentialServiceHashes(user),
130
- });
144
+ if (user) {
145
+ await emit('USER_UPDATE_AVATAR', {
146
+ user: removeConfidentialServiceHashes(user),
147
+ });
148
+ }
131
149
  return user;
132
150
  },
133
151
  updateGuest: async (user, guest) => {
@@ -147,9 +165,11 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
147
165
  const user = await Users.findOneAndUpdate(generateDbFilterById(userId), modifier, {
148
166
  returnDocument: 'after',
149
167
  });
150
- await emit('USER_UPDATE_HEARTBEAT', {
151
- user: removeConfidentialServiceHashes(user),
152
- });
168
+ if (user) {
169
+ await emit('USER_UPDATE_HEARTBEAT', {
170
+ user: removeConfidentialServiceHashes(user),
171
+ });
172
+ }
153
173
  return user;
154
174
  },
155
175
  updateInitialPassword: async (user, initialPassword) => {
@@ -172,12 +192,14 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
172
192
  return [];
173
193
  return [
174
194
  {
175
- address: `${address}@${uuidv4()}.unchained.local`,
195
+ address: `${address}@${crypto.randomUUID()}.unchained.local`,
176
196
  verified: true,
177
197
  },
178
198
  ];
179
199
  });
180
- const obfuscatedUsername = existingUser.username ? `${existingUser.username}-${uuidv4()}` : null;
200
+ const obfuscatedUsername = existingUser.username
201
+ ? `${existingUser.username}-${crypto.randomUUID()}`
202
+ : null;
181
203
  Users.updateOne(userFilter, {
182
204
  $set: {
183
205
  emails: obfuscatedEmails,
@@ -186,9 +208,11 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
186
208
  },
187
209
  });
188
210
  const user = await Users.findOneAndDelete(userFilter);
189
- await emit('USER_REMOVE', {
190
- user: removeConfidentialServiceHashes(user),
191
- });
211
+ if (user) {
212
+ await emit('USER_REMOVE', {
213
+ user: removeConfidentialServiceHashes(user),
214
+ });
215
+ }
192
216
  return user;
193
217
  },
194
218
  updateProfile: async (userId, updatedData) => {
@@ -214,9 +238,11 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
214
238
  const user = await Users.findOneAndUpdate(userFilter, modifier, {
215
239
  returnDocument: 'after',
216
240
  });
217
- await emit('USER_UPDATE_PROFILE', {
218
- user: removeConfidentialServiceHashes(user),
219
- });
241
+ if (user) {
242
+ await emit('USER_UPDATE_PROFILE', {
243
+ user: removeConfidentialServiceHashes(user),
244
+ });
245
+ }
220
246
  return user;
221
247
  },
222
248
  updateLastBillingAddress: async (_id, lastBillingAddress) => {
@@ -241,9 +267,11 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
241
267
  const updatedUser = await Users.findOneAndUpdate(generateDbFilterById(_id), modifier, {
242
268
  returnDocument: 'after',
243
269
  });
244
- await emit('USER_UPDATE_BILLING_ADDRESS', {
245
- user: removeConfidentialServiceHashes(user),
246
- });
270
+ if (updatedUser) {
271
+ await emit('USER_UPDATE_BILLING_ADDRESS', {
272
+ user: removeConfidentialServiceHashes(updatedUser),
273
+ });
274
+ }
247
275
  return updatedUser;
248
276
  },
249
277
  updateLastContact: async (_id, lastContact) => {
@@ -264,9 +292,11 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
264
292
  const updatedUser = await Users.findOneAndUpdate(userFilter, modifier, {
265
293
  returnDocument: 'after',
266
294
  });
267
- await emit('USER_UPDATE_LAST_CONTACT', {
268
- user: removeConfidentialServiceHashes(user),
269
- });
295
+ if (updatedUser) {
296
+ await emit('USER_UPDATE_LAST_CONTACT', {
297
+ user: removeConfidentialServiceHashes(updatedUser),
298
+ });
299
+ }
270
300
  return updatedUser;
271
301
  },
272
302
  updateRoles: async (_id, roles) => {
@@ -279,9 +309,11 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
279
309
  const user = await Users.findOneAndUpdate(generateDbFilterById(_id), modifier, {
280
310
  returnDocument: 'after',
281
311
  });
282
- await emit('USER_UPDATE_ROLE', {
283
- user: removeConfidentialServiceHashes(user),
284
- });
312
+ if (user) {
313
+ await emit('USER_UPDATE_ROLE', {
314
+ user: removeConfidentialServiceHashes(user),
315
+ });
316
+ }
285
317
  return user;
286
318
  },
287
319
  updateTags: async (_id, tags) => {
@@ -294,9 +326,11 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
294
326
  const user = await Users.findOneAndUpdate(generateDbFilterById(_id), modifier, {
295
327
  returnDocument: 'after',
296
328
  });
297
- await emit('USER_UPDATE_TAGS', {
298
- user: removeConfidentialServiceHashes(user),
299
- });
329
+ if (user) {
330
+ await emit('USER_UPDATE_TAGS', {
331
+ user: removeConfidentialServiceHashes(user),
332
+ });
333
+ }
300
334
  return user;
301
335
  },
302
336
  updateUser: async (query, modifier, options) => {
@@ -304,9 +338,11 @@ export const configureUsersModule = async ({ db, migrationRepository, }) => {
304
338
  ...options,
305
339
  returnDocument: 'after',
306
340
  });
307
- await emit('USER_UPDATE', {
308
- user: removeConfidentialServiceHashes(user),
309
- });
341
+ if (user) {
342
+ await emit('USER_UPDATE', {
343
+ user: removeConfidentialServiceHashes(user),
344
+ });
345
+ }
310
346
  return user;
311
347
  },
312
348
  addPushSubscription: async (userId, subscription, { userAgent, unsubscribeFromOtherUsers }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"configureUsersModule.js","sourceRoot":"","sources":["../../src/module/configureUsersModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureUsersModule.js","sourceRoot":"","sources":["../../src/module/configureUsersModule.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-users",
3
- "version": "2.16.2",
3
+ "version": "2.18.0",
4
4
  "main": "lib/users-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/users-index.js",
@@ -31,20 +31,19 @@
31
31
  },
32
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
33
  "dependencies": {
34
- "@unchainedshop/events": "^2.16.2",
35
- "@unchainedshop/file-upload": "^2.16.2",
36
- "@unchainedshop/logger": "^2.16.2",
37
- "@unchainedshop/roles": "^2.16.2",
38
- "@unchainedshop/utils": "^2.16.2",
34
+ "@unchainedshop/events": "^2.18.0",
35
+ "@unchainedshop/file-upload": "^2.18.0",
36
+ "@unchainedshop/logger": "^2.18.0",
37
+ "@unchainedshop/roles": "^2.18.0",
38
+ "@unchainedshop/utils": "^2.18.0",
39
39
  "locale": "^0.1.0",
40
- "simpl-schema": "^3.4.6",
41
- "uuid": "^10.0.0"
40
+ "simpl-schema": "^3.4.6"
42
41
  },
43
42
  "devDependencies": {
44
- "@types/node": "^22.9.0",
45
- "@unchainedshop/types": "^2.16.2",
43
+ "@types/node": "^22.10.2",
44
+ "@unchainedshop/types": "^2.18.0",
46
45
  "jest": "^29.7.0",
47
46
  "ts-jest": "^29.2.5",
48
- "typescript": "^5.6.3"
47
+ "typescript": "^5.7.2"
49
48
  }
50
49
  }
@@ -7,7 +7,6 @@ import { generateDbFilterById, buildSortOptions, mongodb } from '@unchainedshop/
7
7
  import { systemLocale } from '@unchainedshop/utils';
8
8
  import { FileDirector } from '@unchainedshop/file-upload';
9
9
  import { SortDirection, SortOption } from '@unchainedshop/types/api.js';
10
- import { v4 as uuidv4 } from 'uuid';
11
10
  import { UsersCollection } from '../db/UsersCollection.js';
12
11
  import addMigrations from './addMigrations.js';
13
12
 
@@ -31,9 +30,32 @@ export const removeConfidentialServiceHashes = (rawUser: User): User => {
31
30
  return user;
32
31
  };
33
32
 
34
- export const buildFindSelector = ({ includeGuests, queryString, ...rest }: UserQuery) => {
33
+ export const buildFindSelector = ({
34
+ includeGuests,
35
+ queryString,
36
+ emailVerified,
37
+ lastLogin,
38
+ ...rest
39
+ }: UserQuery) => {
35
40
  const selector: mongodb.Filter<User> = { ...rest, deleted: null };
36
41
  if (!includeGuests) selector.guest = { $in: [false, null] };
42
+ if (emailVerified === true) {
43
+ selector['emails.verified'] = true;
44
+ }
45
+ if (emailVerified === false) {
46
+ // We need to use $ne here else we'd also find users with many emails where one is
47
+ // unverified
48
+ selector['emails.verified'] = { $ne: true };
49
+ }
50
+ if (lastLogin?.start) {
51
+ selector['lastLogin.timestamp'] = { $exists: true };
52
+ }
53
+ if (lastLogin?.end) {
54
+ selector['lastLogin.timestamp'].$lte = new Date(lastLogin.end);
55
+ }
56
+ if (lastLogin?.start) {
57
+ selector['lastLogin.timestamp'].$gte = new Date(lastLogin.start);
58
+ }
37
59
  if (queryString) {
38
60
  (selector as any).$text = { $search: queryString };
39
61
  }
@@ -101,7 +123,7 @@ export const configureUsersModule = async ({
101
123
 
102
124
  findUsers: async ({ limit, offset, ...query }) => {
103
125
  const defaultSort = [{ key: 'created', value: SortDirection.ASC }] as SortOption[];
104
- const selector = buildFindSelector(query);
126
+ const selector = buildFindSelector({ ...query });
105
127
 
106
128
  if (query.queryString) {
107
129
  return Users.find(selector, {
@@ -153,9 +175,11 @@ export const configureUsersModule = async ({
153
175
  returnDocument: 'after',
154
176
  });
155
177
 
156
- await emit('USER_UPDATE_AVATAR', {
157
- user: removeConfidentialServiceHashes(user),
158
- });
178
+ if (user) {
179
+ await emit('USER_UPDATE_AVATAR', {
180
+ user: removeConfidentialServiceHashes(user),
181
+ });
182
+ }
159
183
  return user;
160
184
  },
161
185
 
@@ -180,9 +204,11 @@ export const configureUsersModule = async ({
180
204
  returnDocument: 'after',
181
205
  });
182
206
 
183
- await emit('USER_UPDATE_HEARTBEAT', {
184
- user: removeConfidentialServiceHashes(user),
185
- });
207
+ if (user) {
208
+ await emit('USER_UPDATE_HEARTBEAT', {
209
+ user: removeConfidentialServiceHashes(user),
210
+ });
211
+ }
186
212
  return user;
187
213
  },
188
214
 
@@ -208,13 +234,15 @@ export const configureUsersModule = async ({
208
234
  if (!verified) return [];
209
235
  return [
210
236
  {
211
- address: `${address}@${uuidv4()}.unchained.local`,
237
+ address: `${address}@${crypto.randomUUID()}.unchained.local`,
212
238
  verified: true,
213
239
  },
214
240
  ];
215
241
  });
216
242
 
217
- const obfuscatedUsername = existingUser.username ? `${existingUser.username}-${uuidv4()}` : null;
243
+ const obfuscatedUsername = existingUser.username
244
+ ? `${existingUser.username}-${crypto.randomUUID()}`
245
+ : null;
218
246
 
219
247
  Users.updateOne(userFilter, {
220
248
  $set: {
@@ -225,9 +253,11 @@ export const configureUsersModule = async ({
225
253
  });
226
254
 
227
255
  const user = await Users.findOneAndDelete(userFilter);
228
- await emit('USER_REMOVE', {
229
- user: removeConfidentialServiceHashes(user),
230
- });
256
+ if (user) {
257
+ await emit('USER_REMOVE', {
258
+ user: removeConfidentialServiceHashes(user),
259
+ });
260
+ }
231
261
  return user;
232
262
  },
233
263
  updateProfile: async (userId, updatedData) => {
@@ -259,9 +289,11 @@ export const configureUsersModule = async ({
259
289
  returnDocument: 'after',
260
290
  });
261
291
 
262
- await emit('USER_UPDATE_PROFILE', {
263
- user: removeConfidentialServiceHashes(user),
264
- });
292
+ if (user) {
293
+ await emit('USER_UPDATE_PROFILE', {
294
+ user: removeConfidentialServiceHashes(user),
295
+ });
296
+ }
265
297
  return user;
266
298
  },
267
299
 
@@ -291,9 +323,11 @@ export const configureUsersModule = async ({
291
323
  returnDocument: 'after',
292
324
  });
293
325
 
294
- await emit('USER_UPDATE_BILLING_ADDRESS', {
295
- user: removeConfidentialServiceHashes(user),
296
- });
326
+ if (updatedUser) {
327
+ await emit('USER_UPDATE_BILLING_ADDRESS', {
328
+ user: removeConfidentialServiceHashes(updatedUser),
329
+ });
330
+ }
297
331
  return updatedUser;
298
332
  },
299
333
 
@@ -319,9 +353,11 @@ export const configureUsersModule = async ({
319
353
  returnDocument: 'after',
320
354
  });
321
355
 
322
- await emit('USER_UPDATE_LAST_CONTACT', {
323
- user: removeConfidentialServiceHashes(user),
324
- });
356
+ if (updatedUser) {
357
+ await emit('USER_UPDATE_LAST_CONTACT', {
358
+ user: removeConfidentialServiceHashes(updatedUser),
359
+ });
360
+ }
325
361
  return updatedUser;
326
362
  },
327
363
 
@@ -337,9 +373,11 @@ export const configureUsersModule = async ({
337
373
  returnDocument: 'after',
338
374
  });
339
375
 
340
- await emit('USER_UPDATE_ROLE', {
341
- user: removeConfidentialServiceHashes(user),
342
- });
376
+ if (user) {
377
+ await emit('USER_UPDATE_ROLE', {
378
+ user: removeConfidentialServiceHashes(user),
379
+ });
380
+ }
343
381
  return user;
344
382
  },
345
383
 
@@ -353,9 +391,13 @@ export const configureUsersModule = async ({
353
391
  const user = await Users.findOneAndUpdate(generateDbFilterById(_id), modifier, {
354
392
  returnDocument: 'after',
355
393
  });
356
- await emit('USER_UPDATE_TAGS', {
357
- user: removeConfidentialServiceHashes(user),
358
- });
394
+
395
+ if (user) {
396
+ await emit('USER_UPDATE_TAGS', {
397
+ user: removeConfidentialServiceHashes(user),
398
+ });
399
+ }
400
+
359
401
  return user;
360
402
  },
361
403
 
@@ -364,9 +406,11 @@ export const configureUsersModule = async ({
364
406
  ...options,
365
407
  returnDocument: 'after',
366
408
  });
367
- await emit('USER_UPDATE', {
368
- user: removeConfidentialServiceHashes(user),
369
- });
409
+ if (user) {
410
+ await emit('USER_UPDATE', {
411
+ user: removeConfidentialServiceHashes(user),
412
+ });
413
+ }
370
414
  return user;
371
415
  },
372
416