@unchainedshop/core-users 3.0.0-alpha7 → 3.0.0-rc1

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 (51) hide show
  1. package/lib/module/configureUsersModule.d.ts +10 -68
  2. package/lib/module/configureUsersModule.d.ts.map +1 -1
  3. package/lib/module/configureUsersModule.js +57 -52
  4. package/lib/module/configureUsersModule.js.map +1 -1
  5. package/lib/module/configureUsersModule_BACKUP_57123.d.ts +73 -0
  6. package/lib/module/configureUsersModule_BACKUP_57123.d.ts.map +1 -0
  7. package/lib/module/configureUsersModule_BACKUP_57123.js +567 -0
  8. package/lib/module/configureUsersModule_BACKUP_57123.js.map +1 -0
  9. package/lib/module/configureUsersModule_BASE_57123.d.ts +131 -0
  10. package/lib/module/configureUsersModule_BASE_57123.d.ts.map +1 -0
  11. package/lib/module/configureUsersModule_BASE_57123.js +563 -0
  12. package/lib/module/configureUsersModule_BASE_57123.js.map +1 -0
  13. package/lib/module/configureUsersModule_LOCAL_57123.d.ts +131 -0
  14. package/lib/module/configureUsersModule_LOCAL_57123.d.ts.map +1 -0
  15. package/lib/module/configureUsersModule_LOCAL_57123.js +564 -0
  16. package/lib/module/configureUsersModule_LOCAL_57123.js.map +1 -0
  17. package/lib/module/configureUsersModule_REMOTE_57123.d.ts +74 -0
  18. package/lib/module/configureUsersModule_REMOTE_57123.d.ts.map +1 -0
  19. package/lib/module/configureUsersModule_REMOTE_57123.js +567 -0
  20. package/lib/module/configureUsersModule_REMOTE_57123.js.map +1 -0
  21. package/lib/module/configureUsersWebAuthnModule.d.ts.map +1 -1
  22. package/lib/module/configureUsersWebAuthnModule.js.map +1 -1
  23. package/lib/types.d.ts +5 -2
  24. package/lib/types.d.ts.map +1 -1
  25. package/lib/users-index.d.ts +0 -1
  26. package/lib/users-index.d.ts.map +1 -1
  27. package/lib/users-index.js +0 -1
  28. package/lib/users-index.js.map +1 -1
  29. package/package.json +14 -17
  30. package/src/module/configureUsersModule.ts +77 -72
  31. package/src/module/configureUsersWebAuthnModule.ts +0 -1
  32. package/src/types.ts +5 -2
  33. package/src/users-index.ts +0 -1
  34. package/tests/mock/user-mock.ts +2 -3
  35. package/tsconfig.json +5 -7
  36. package/lib/services/migrateUserDataService.d.ts +0 -4
  37. package/lib/services/migrateUserDataService.d.ts.map +0 -1
  38. package/lib/services/migrateUserDataService.js +0 -18
  39. package/lib/services/migrateUserDataService.js.map +0 -1
  40. package/lib/services/updateUserAvatarAfterUploadService.d.ts +0 -15
  41. package/lib/services/updateUserAvatarAfterUploadService.d.ts.map +0 -1
  42. package/lib/services/updateUserAvatarAfterUploadService.js +0 -24
  43. package/lib/services/updateUserAvatarAfterUploadService.js.map +0 -1
  44. package/lib/services/userServices.d.ts +0 -8
  45. package/lib/services/userServices.d.ts.map +0 -1
  46. package/lib/services/userServices.js +0 -7
  47. package/lib/services/userServices.js.map +0 -1
  48. package/src/module/sha256.ts +0 -5
  49. package/src/services/migrateUserDataService.ts +0 -37
  50. package/src/services/updateUserAvatarAfterUploadService.ts +0 -42
  51. package/src/services/userServices.ts +0 -15
@@ -1,10 +1,9 @@
1
- import { ModuleInput } from '@unchainedshop/mongodb';
1
+ import { ModuleInput, Address, Contact } from '@unchainedshop/mongodb';
2
2
  import { User, UserQuery, Email, UserLastLogin, UserProfile, UserData } from '../types.js';
3
3
  import { mongodb } from '@unchainedshop/mongodb';
4
4
  import { SortOption } from '@unchainedshop/utils';
5
5
  import { UserSettingsOptions } from '../users-settings.js';
6
6
  import { UsersWebAuthnModule } from './configureUsersWebAuthnModule.js';
7
- import type { Address, Contact } from '@unchainedshop/mongodb';
8
7
  export type UsersModule = {
9
8
  webAuthn: UsersWebAuthnModule;
10
9
  count: (query: UserQuery) => Promise<number>;
@@ -53,7 +52,10 @@ export type UsersModule = {
53
52
  profile?: UserProfile;
54
53
  meta?: any;
55
54
  }) => Promise<User>;
56
- delete: (userId: string) => Promise<User>;
55
+ markDeleted: (userId: string) => Promise<User>;
56
+ deletePermanently: (params: {
57
+ userId: string;
58
+ }) => Promise<User>;
57
59
  updateRoles: (_id: string, roles: Array<string>) => Promise<User>;
58
60
  updateTags: (_id: string, tags: Array<string>) => Promise<User>;
59
61
  updateUser: (selector: mongodb.Filter<User>, modifier: mongodb.UpdateFilter<User>, options: mongodb.FindOneAndUpdateOptions) => Promise<User>;
@@ -62,71 +64,11 @@ export type UsersModule = {
62
64
  unsubscribeFromOtherUsers: boolean;
63
65
  }) => Promise<void>;
64
66
  removePushSubscription: (userId: string, p256dh: string) => Promise<void>;
65
- };
66
- export declare const removeConfidentialServiceHashes: (rawUser: User) => User;
67
- export declare const buildFindSelector: ({ includeGuests, queryString, ...rest }: UserQuery) => mongodb.Filter<User>;
68
- export declare const configureUsersModule: ({ db, options, migrationRepository, }: ModuleInput<UserSettingsOptions>) => Promise<{
69
- webAuthn: UsersWebAuthnModule;
70
- count(query: UserQuery): Promise<number>;
71
- findUserById(userId: string): Promise<User>;
72
- findUserByUsername(username: string): Promise<User>;
73
- findUserByEmail(email: string): Promise<User>;
74
- findUnverifiedEmailToken(plainToken: string): Promise<{
75
- userId: string;
76
- address: string;
77
- when: Date;
78
- }>;
79
- verifyEmail(userId: string, address: string): Promise<void>;
80
- findUserByResetToken(plainToken: string): Promise<User>;
81
- findUserByToken(plainToken?: string): Promise<User>;
82
- findUser(query: UserQuery & {
83
- sort?: Array<SortOption>;
84
- }, findOptions?: mongodb.FindOptions): Promise<User>;
85
- findUsers({ limit, offset, ...query }: UserQuery & {
86
- sort?: Array<SortOption>;
87
- limit?: number;
88
- offset?: number;
89
- }): Promise<Array<User>>;
90
- userExists({ userId }: {
91
- userId: string;
92
- }): Promise<boolean>;
93
- primaryEmail(user: User): Email;
94
- userLocale(user: User): Intl.Locale;
95
- createUser({ password, email, username, initialPassword, roles, webAuthnPublicKeyCredentials, ...userData }: UserData, { skipMessaging, skipPasswordEnrollment, }?: {
96
- skipMessaging?: boolean;
97
- skipPasswordEnrollment?: boolean;
98
- }): Promise<string>;
99
- hashPassword(password: any): Promise<{
67
+ hashPassword(password: string): Promise<{
100
68
  pbkdf2: string;
101
69
  }>;
102
- verifyPassword({ bcrypt: bcryptHash, pbkdf2: pbkdf2SaltAndHash }: {
103
- bcrypt?: string;
104
- pbkdf2?: string;
105
- }, plainPassword: string): Promise<boolean>;
106
- addEmail(userId: string, address: string): Promise<void>;
107
- removeEmail(userId: string, address: string): Promise<void>;
108
- sendResetPasswordEmail(userId: string, email: string, isEnrollment?: boolean): Promise<void>;
109
- sendVerificationEmail(userId: string, email: string): Promise<void>;
110
- addRoles: (userId: string, roles: Array<string>) => Promise<number>;
111
- setUsername(userId: string, username: string): Promise<void>;
112
- setPassword(userId: string, plainPassword: string): Promise<void>;
113
- updateAvatar: (_id: string, fileId: string) => Promise<User>;
114
- updateGuest: (user: User, guest: boolean) => Promise<void>;
115
- updateHeartbeat: (userId: string, lastLogin: UserLastLogin) => Promise<User>;
116
- delete: (userId: string) => Promise<User>;
117
- updateProfile: (userId: string, updatedData: {
118
- profile?: UserProfile;
119
- meta?: any;
120
- }) => Promise<User>;
121
- updateLastBillingAddress: (_id: string, lastBillingAddress: Address) => Promise<User>;
122
- updateLastContact: (_id: string, lastContact: Contact) => Promise<User>;
123
- updateRoles: (_id: string, roles: Array<string>) => Promise<User>;
124
- updateTags: (_id: string, tags: Array<string>) => Promise<User>;
125
- updateUser: (selector: mongodb.Filter<User>, modifier: mongodb.UpdateFilter<User>, updateOptions?: mongodb.FindOneAndUpdateOptions) => Promise<User>;
126
- addPushSubscription: (userId: string, subscription: any, subscriptionOptions?: {
127
- userAgent: string;
128
- unsubscribeFromOtherUsers: boolean;
129
- }) => Promise<void>;
130
- removePushSubscription: (userId: string, p256dh: string) => Promise<void>;
131
- }>;
70
+ };
71
+ export declare const removeConfidentialServiceHashes: (rawUser: User) => User;
72
+ export declare const buildFindSelector: ({ includeGuests, queryString, emailVerified, lastLogin, ...rest }: UserQuery) => mongodb.Filter<User>;
73
+ export declare const configureUsersModule: ({ db, options, migrationRepository, }: ModuleInput<UserSettingsOptions>) => Promise<UsersModule>;
132
74
  //# sourceMappingURL=configureUsersModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureUsersModule.d.ts","sourceRoot":"","sources":["../../src/module/configureUsersModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureUsersModule.d.ts","sourceRoot":"","sources":["../../src/module/configureUsersModule.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,12 @@
1
- import bcrypt from 'bcryptjs';
1
+ import bcrypt from '@node-rs/bcrypt';
2
2
  import { emit, registerEvents } from '@unchainedshop/events';
3
3
  import { generateDbFilterById, buildSortOptions, generateDbObjectId, } from '@unchainedshop/mongodb';
4
- import { systemLocale } from '@unchainedshop/utils';
5
- import { FileDirector } from '@unchainedshop/file-upload';
6
- import { SortDirection } from '@unchainedshop/utils';
4
+ import { systemLocale, SortDirection, sha256 } from '@unchainedshop/utils';
7
5
  import { UsersCollection } from '../db/UsersCollection.js';
8
6
  import addMigrations from './addMigrations.js';
9
7
  import { userSettings } from '../users-settings.js';
10
8
  import { configureUsersWebAuthnModule } from './configureUsersWebAuthnModule.js';
11
9
  import * as pbkdf2 from './pbkdf2.js';
12
- import * as sha256 from './sha256.js';
13
10
  const USER_EVENTS = [
14
11
  'USER_ACCOUNT_ACTION',
15
12
  'USER_CREATE',
@@ -32,19 +29,32 @@ export const removeConfidentialServiceHashes = (rawUser) => {
32
29
  delete user?.services;
33
30
  return user;
34
31
  };
35
- export const buildFindSelector = ({ includeGuests, queryString, ...rest }) => {
32
+ export const buildFindSelector = ({ includeGuests, queryString, emailVerified, lastLogin, ...rest }) => {
36
33
  const selector = { ...rest, deleted: null };
37
34
  if (!includeGuests)
38
35
  selector.guest = { $in: [false, null] };
36
+ if (emailVerified === true) {
37
+ selector['emails.verified'] = true;
38
+ }
39
+ if (emailVerified === false) {
40
+ // We need to use $ne here else we'd also find users with many emails where one is
41
+ // unverified
42
+ selector['emails.verified'] = { $ne: true };
43
+ }
44
+ if (lastLogin?.start) {
45
+ selector['lastLogin.timestamp'] = { $exists: true };
46
+ }
47
+ if (lastLogin?.end) {
48
+ selector['lastLogin.timestamp'].$lte = new Date(lastLogin.end);
49
+ }
50
+ if (lastLogin?.start) {
51
+ selector['lastLogin.timestamp'].$gte = new Date(lastLogin.start);
52
+ }
39
53
  if (queryString) {
40
54
  selector.$text = { $search: queryString };
41
55
  }
42
56
  return selector;
43
57
  };
44
- FileDirector.registerFileUploadCallback('user-avatars', async (file, context) => {
45
- const { services } = context;
46
- return services.users.updateUserAvatarAfterUpload({ file }, context);
47
- });
48
58
  export const configureUsersModule = async ({ db, options, migrationRepository, }) => {
49
59
  userSettings.configureSettings(options || {}, db);
50
60
  registerEvents(USER_EVENTS);
@@ -77,12 +87,12 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
77
87
  async findUnverifiedEmailToken(plainToken) {
78
88
  if (!plainToken)
79
89
  return null;
80
- const token = await sha256.hash(plainToken);
90
+ const token = await sha256(plainToken);
81
91
  const user = await Users.findOne({
82
92
  'services.email.verificationTokens': {
83
93
  $elemMatch: {
84
94
  token,
85
- when: { $gt: new Date().getTime() },
95
+ when: { $gt: new Date(new Date().getTime() - 1000 * 60 * 60) },
86
96
  },
87
97
  },
88
98
  }, {});
@@ -114,19 +124,19 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
114
124
  });
115
125
  },
116
126
  async findUserByResetToken(plainToken) {
117
- const token = await sha256.hash(plainToken);
127
+ const token = await sha256(plainToken);
118
128
  const user = await Users.findOne({
119
129
  'services.password.reset': {
120
130
  $elemMatch: {
121
131
  token,
122
- when: { $gt: new Date().getTime() },
132
+ when: { $gt: new Date(new Date().getTime() - 1000 * 60 * 60) },
123
133
  },
124
134
  },
125
135
  }, {});
126
136
  return user;
127
137
  },
128
138
  async findUserByToken(plainToken) {
129
- const token = await sha256.hash(plainToken);
139
+ const token = await sha256(plainToken);
130
140
  if (token) {
131
141
  return Users.findOne({
132
142
  'services.token.secret': token,
@@ -140,7 +150,7 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
140
150
  },
141
151
  async findUsers({ limit, offset, ...query }) {
142
152
  const defaultSort = [{ key: 'created', value: SortDirection.ASC }];
143
- const selector = buildFindSelector(query);
153
+ const selector = buildFindSelector({ ...query });
144
154
  if (query.queryString) {
145
155
  return Users.find(selector, {
146
156
  skip: offset,
@@ -156,9 +166,7 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
156
166
  }).toArray();
157
167
  },
158
168
  async userExists({ userId }) {
159
- const selector = generateDbFilterById(userId);
160
- selector.deleted = null; // skip deleted users when checked for existance!
161
- const userCount = await Users.countDocuments(selector, { limit: 1 });
169
+ const userCount = await Users.countDocuments({ _id: userId, deleted: null }, { limit: 1 });
162
170
  return userCount === 1;
163
171
  },
164
172
  // Transformations
@@ -237,7 +245,7 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
237
245
  },
238
246
  async verifyPassword({ bcrypt: bcryptHash, pbkdf2: pbkdf2SaltAndHash }, plainPassword) {
239
247
  if (bcryptHash) {
240
- const password = await sha256.hash(plainPassword);
248
+ const password = await sha256(plainPassword);
241
249
  return bcrypt.compare(password, bcryptHash);
242
250
  }
243
251
  if (pbkdf2SaltAndHash) {
@@ -269,9 +277,9 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
269
277
  async sendResetPasswordEmail(userId, email, isEnrollment) {
270
278
  const plainToken = crypto.randomUUID();
271
279
  const resetToken = {
272
- token: await sha256.hash(plainToken),
280
+ token: await sha256(plainToken),
273
281
  address: email,
274
- when: new Date().getTime() + 1000 * 60 * 60, // 1 hour
282
+ when: new Date(),
275
283
  };
276
284
  await Users.updateOne({ _id: userId }, {
277
285
  $push: {
@@ -288,9 +296,9 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
288
296
  async sendVerificationEmail(userId, email) {
289
297
  const plainToken = crypto.randomUUID();
290
298
  const verificationToken = {
291
- token: await sha256.hash(plainToken),
299
+ token: await sha256(plainToken),
292
300
  address: email,
293
- when: new Date().getTime() + 1000 * 60 * 60, // 1 hour
301
+ when: new Date(),
294
302
  };
295
303
  await Users.updateOne({ _id: userId }, {
296
304
  $push: {
@@ -388,38 +396,31 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
388
396
  });
389
397
  return user;
390
398
  },
391
- delete: async (userId) => {
392
- const userFilter = generateDbFilterById(userId);
393
- const existingUser = await Users.findOne(userFilter, {
394
- projection: { emails: true, username: true },
395
- });
396
- if (!existingUser)
397
- return null;
398
- const uuid = crypto.randomUUID();
399
- const obfuscatedEmails = existingUser.emails?.flatMap(({ address, verified }) => {
400
- if (!verified)
401
- return [];
402
- return [
403
- {
404
- address: `${address}@${uuid}.unchained.local`,
405
- verified: true,
406
- },
407
- ];
408
- });
409
- const obfuscatedUsername = existingUser.username ? `${existingUser.username}-${uuid}` : null;
410
- Users.updateOne(userFilter, {
399
+ markDeleted: async (userId) => {
400
+ const user = await Users.findOneAndUpdate({ _id: userId }, {
411
401
  $set: {
412
- emails: obfuscatedEmails,
413
- username: obfuscatedUsername,
402
+ username: `deleted-${Date.now()}`,
403
+ deleted: new Date(),
404
+ emails: [],
405
+ roles: [],
406
+ profile: null,
407
+ lastBillingAddress: null,
414
408
  services: {},
409
+ pushSubscriptions: [],
410
+ avatarId: null,
411
+ initialPassword: false,
412
+ lastContact: null,
413
+ lastLogin: null,
415
414
  },
416
- });
417
- const user = await Users.findOneAndDelete(userFilter);
415
+ }, { returnDocument: 'after' });
418
416
  await emit('USER_REMOVE', {
419
- user: removeConfidentialServiceHashes(user),
417
+ user,
420
418
  });
421
419
  return user;
422
420
  },
421
+ deletePermanently: async ({ userId }) => {
422
+ return Users.findOneAndDelete({ _id: userId });
423
+ },
423
424
  updateProfile: async (userId, updatedData) => {
424
425
  const userFilter = generateDbFilterById(userId);
425
426
  const { meta, profile } = updatedData;
@@ -451,6 +452,8 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
451
452
  updateLastBillingAddress: async (_id, lastBillingAddress) => {
452
453
  const userFilter = generateDbFilterById(_id);
453
454
  const user = await Users.findOne(userFilter, {});
455
+ if (!lastBillingAddress)
456
+ return user;
454
457
  const modifier = {
455
458
  $set: {
456
459
  lastBillingAddress,
@@ -470,9 +473,11 @@ export const configureUsersModule = async ({ db, options, migrationRepository, }
470
473
  const updatedUser = await Users.findOneAndUpdate(generateDbFilterById(_id), modifier, {
471
474
  returnDocument: 'after',
472
475
  });
473
- await emit('USER_UPDATE_BILLING_ADDRESS', {
474
- user: removeConfidentialServiceHashes(user),
475
- });
476
+ if (updatedUser) {
477
+ await emit('USER_UPDATE_BILLING_ADDRESS', {
478
+ user: removeConfidentialServiceHashes(updatedUser),
479
+ });
480
+ }
476
481
  return updatedUser;
477
482
  },
478
483
  updateLastContact: async (_id, lastContact) => {
@@ -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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"}
@@ -0,0 +1,73 @@
1
+ import { ModuleInput, Address, Contact } from '@unchainedshop/mongodb';
2
+ import { User, UserQuery, Email, UserLastLogin, UserProfile, UserData } from '../types.js';
3
+ import { mongodb } from '@unchainedshop/mongodb';
4
+ import { SortOption } from '@unchainedshop/utils';
5
+ import { UserSettingsOptions } from '../users-settings.js';
6
+ import { UsersWebAuthnModule } from './configureUsersWebAuthnModule.js';
7
+ export type UsersModule = {
8
+ webAuthn: UsersWebAuthnModule;
9
+ count: (query: UserQuery) => Promise<number>;
10
+ findUserById: (userId: string) => Promise<User>;
11
+ findUserByToken: (hashedToken?: string) => Promise<User>;
12
+ findUserByResetToken: (token: string) => Promise<User>;
13
+ findUnverifiedEmailToken: (token: string) => Promise<{
14
+ userId: string;
15
+ address: string;
16
+ when: Date;
17
+ }>;
18
+ findUserByEmail(email: string): Promise<User>;
19
+ findUserByUsername(username: string): Promise<User>;
20
+ findUser: (selector: UserQuery & {
21
+ sort?: Array<SortOption>;
22
+ }, options?: mongodb.FindOptions) => Promise<User>;
23
+ findUsers: (query: UserQuery & {
24
+ sort?: Array<SortOption>;
25
+ limit?: number;
26
+ offset?: number;
27
+ }) => Promise<Array<User>>;
28
+ userExists: (query: {
29
+ userId: string;
30
+ }) => Promise<boolean>;
31
+ primaryEmail: (user: User) => Email;
32
+ userLocale: (user: User) => Intl.Locale;
33
+ createUser: (userData: UserData, options: {
34
+ skipMessaging?: boolean;
35
+ skipPasswordEnrollment?: boolean;
36
+ }) => Promise<string>;
37
+ addEmail: (userId: string, email: string) => Promise<void>;
38
+ removeEmail: (userId: string, email: string) => Promise<void>;
39
+ sendVerificationEmail: (userId: string, email: string) => Promise<void>;
40
+ sendResetPasswordEmail: (userId: string, email: string, isEnrollment?: boolean) => Promise<void>;
41
+ verifyEmail: (userId: string, email: string) => Promise<void>;
42
+ setUsername: (userId: string, newUsername: string) => Promise<void>;
43
+ setPassword: (userId: string, newPassword?: string) => Promise<void>;
44
+ verifyPassword: (hashObject: Record<string, string>, password: string) => Promise<boolean>;
45
+ addRoles: (userId: string, roles: Array<string>) => Promise<number>;
46
+ updateAvatar: (_id: string, fileId: string) => Promise<User>;
47
+ updateGuest: (user: User, guest: boolean) => Promise<void>;
48
+ updateHeartbeat: (userId: string, doc: UserLastLogin) => Promise<User>;
49
+ updateLastBillingAddress: (_id: string, lastAddress: Address) => Promise<User>;
50
+ updateLastContact: (_id: string, lastContact: Contact) => Promise<User>;
51
+ updateProfile: (_id: string, { profile, meta }: {
52
+ profile?: UserProfile;
53
+ meta?: any;
54
+ }) => Promise<User>;
55
+ delete: (params: {
56
+ userId: string;
57
+ }, context: UnchainedCore) => Promise<User>;
58
+ updateRoles: (_id: string, roles: Array<string>) => Promise<User>;
59
+ updateTags: (_id: string, tags: Array<string>) => Promise<User>;
60
+ updateUser: (selector: mongodb.Filter<User>, modifier: mongodb.UpdateFilter<User>, options: mongodb.FindOneAndUpdateOptions) => Promise<User>;
61
+ addPushSubscription: (userId: string, subscription: any, options?: {
62
+ userAgent: string;
63
+ unsubscribeFromOtherUsers: boolean;
64
+ }) => Promise<void>;
65
+ removePushSubscription: (userId: string, p256dh: string) => Promise<void>;
66
+ hashPassword(password: string): Promise<{
67
+ pbkdf2: string;
68
+ }>;
69
+ };
70
+ export declare const removeConfidentialServiceHashes: (rawUser: User) => User;
71
+ export declare const buildFindSelector: ({ includeGuests, queryString, ...rest }: UserQuery) => mongodb.Filter<User>;
72
+ export declare const configureUsersModule: ({ db, options, migrationRepository, }: ModuleInput<UserSettingsOptions>) => Promise<UsersModule>;
73
+ //# sourceMappingURL=configureUsersModule_BACKUP_57123.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureUsersModule_BACKUP_57123.d.ts","sourceRoot":"","sources":["../../src/module/configureUsersModule_BACKUP_57123.ts"],"names":[],"mappings":"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"}