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

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 (64) hide show
  1. package/lib/db/UsersCollection.d.ts +54 -2
  2. package/lib/db/UsersCollection.d.ts.map +1 -1
  3. package/lib/db/UsersCollection.js.map +1 -1
  4. package/lib/db/WebAuthnCredentialsCreationRequestsCollection.d.ts +6 -1
  5. package/lib/db/WebAuthnCredentialsCreationRequestsCollection.d.ts.map +1 -1
  6. package/lib/db/WebAuthnCredentialsCreationRequestsCollection.js.map +1 -1
  7. package/lib/module/configureUsersModule.d.ts +22 -70
  8. package/lib/module/configureUsersModule.d.ts.map +1 -1
  9. package/lib/module/configureUsersModule.js +59 -54
  10. package/lib/module/configureUsersModule.js.map +1 -1
  11. package/lib/module/configureUsersModule_BACKUP_57123.d.ts +73 -0
  12. package/lib/module/configureUsersModule_BACKUP_57123.d.ts.map +1 -0
  13. package/lib/module/configureUsersModule_BACKUP_57123.js +567 -0
  14. package/lib/module/configureUsersModule_BACKUP_57123.js.map +1 -0
  15. package/lib/module/configureUsersModule_BASE_57123.d.ts +131 -0
  16. package/lib/module/configureUsersModule_BASE_57123.d.ts.map +1 -0
  17. package/lib/module/configureUsersModule_BASE_57123.js +563 -0
  18. package/lib/module/configureUsersModule_BASE_57123.js.map +1 -0
  19. package/lib/module/configureUsersModule_LOCAL_57123.d.ts +131 -0
  20. package/lib/module/configureUsersModule_LOCAL_57123.d.ts.map +1 -0
  21. package/lib/module/configureUsersModule_LOCAL_57123.js +564 -0
  22. package/lib/module/configureUsersModule_LOCAL_57123.js.map +1 -0
  23. package/lib/module/configureUsersModule_REMOTE_57123.d.ts +74 -0
  24. package/lib/module/configureUsersModule_REMOTE_57123.d.ts.map +1 -0
  25. package/lib/module/configureUsersModule_REMOTE_57123.js +567 -0
  26. package/lib/module/configureUsersModule_REMOTE_57123.js.map +1 -0
  27. package/lib/module/configureUsersWebAuthnModule.d.ts.map +1 -1
  28. package/lib/module/configureUsersWebAuthnModule.js.map +1 -1
  29. package/lib/types.d.ts +5 -2
  30. package/lib/types.d.ts.map +1 -1
  31. package/lib/users-index.d.ts +3 -2
  32. package/lib/users-index.d.ts.map +1 -1
  33. package/lib/users-index.js +3 -2
  34. package/lib/users-index.js.map +1 -1
  35. package/lib/users-settings.d.ts +1 -1
  36. package/lib/users-settings.d.ts.map +1 -1
  37. package/lib/users-settings.js.map +1 -1
  38. package/package.json +14 -17
  39. package/src/db/UsersCollection.ts +59 -2
  40. package/src/db/WebAuthnCredentialsCreationRequestsCollection.ts +7 -1
  41. package/src/module/configureUsersModule.ts +100 -75
  42. package/src/module/configureUsersWebAuthnModule.ts +0 -1
  43. package/src/module/removeConfidentialServiceHashes.test.ts +1 -1
  44. package/src/users-index.ts +3 -2
  45. package/src/users-settings.ts +1 -2
  46. package/tests/mock/user-mock.ts +2 -3
  47. package/tsconfig.json +5 -7
  48. package/lib/services/migrateUserDataService.d.ts +0 -4
  49. package/lib/services/migrateUserDataService.d.ts.map +0 -1
  50. package/lib/services/migrateUserDataService.js +0 -18
  51. package/lib/services/migrateUserDataService.js.map +0 -1
  52. package/lib/services/updateUserAvatarAfterUploadService.d.ts +0 -15
  53. package/lib/services/updateUserAvatarAfterUploadService.d.ts.map +0 -1
  54. package/lib/services/updateUserAvatarAfterUploadService.js +0 -24
  55. package/lib/services/updateUserAvatarAfterUploadService.js.map +0 -1
  56. package/lib/services/userServices.d.ts +0 -8
  57. package/lib/services/userServices.d.ts.map +0 -1
  58. package/lib/services/userServices.js +0 -7
  59. package/lib/services/userServices.js.map +0 -1
  60. package/src/module/sha256.ts +0 -5
  61. package/src/services/migrateUserDataService.ts +0 -37
  62. package/src/services/updateUserAvatarAfterUploadService.ts +0 -42
  63. package/src/services/userServices.ts +0 -15
  64. package/src/types.ts +0 -101
@@ -0,0 +1,131 @@
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: (userId: string) => Promise<User>;
56
+ updateRoles: (_id: string, roles: Array<string>) => Promise<User>;
57
+ updateTags: (_id: string, tags: Array<string>) => Promise<User>;
58
+ updateUser: (selector: mongodb.Filter<User>, modifier: mongodb.UpdateFilter<User>, options: mongodb.FindOneAndUpdateOptions) => Promise<User>;
59
+ addPushSubscription: (userId: string, subscription: any, options?: {
60
+ userAgent: string;
61
+ unsubscribeFromOtherUsers: boolean;
62
+ }) => Promise<void>;
63
+ removePushSubscription: (userId: string, p256dh: string) => Promise<void>;
64
+ };
65
+ export declare const removeConfidentialServiceHashes: (rawUser: User) => User;
66
+ export declare const buildFindSelector: ({ includeGuests, queryString, ...rest }: UserQuery) => mongodb.Filter<User>;
67
+ export declare const configureUsersModule: ({ db, options, migrationRepository, }: ModuleInput<UserSettingsOptions>) => Promise<{
68
+ webAuthn: UsersWebAuthnModule;
69
+ count(query: UserQuery): Promise<number>;
70
+ findUserById(userId: string): Promise<User>;
71
+ findUserByUsername(username: string): Promise<User>;
72
+ findUserByEmail(email: string): Promise<User>;
73
+ findUnverifiedEmailToken(plainToken: string): Promise<{
74
+ userId: string;
75
+ address: string;
76
+ when: Date;
77
+ }>;
78
+ verifyEmail(userId: string, address: string): Promise<void>;
79
+ findUserByResetToken(plainToken: string): Promise<User>;
80
+ findUserByToken(plainToken?: string): Promise<User>;
81
+ findUser(query: UserQuery & {
82
+ sort?: Array<SortOption>;
83
+ }, findOptions?: mongodb.FindOptions): Promise<User>;
84
+ findUsers({ limit, offset, ...query }: UserQuery & {
85
+ sort?: Array<SortOption>;
86
+ limit?: number;
87
+ offset?: number;
88
+ }): Promise<Array<User>>;
89
+ userExists({ userId }: {
90
+ userId: string;
91
+ }): Promise<boolean>;
92
+ primaryEmail(user: User): Email;
93
+ userLocale(user: User): Intl.Locale;
94
+ createUser({ password, email, username, initialPassword, roles, webAuthnPublicKeyCredentials, ...userData }: UserData, { skipMessaging, skipPasswordEnrollment, }?: {
95
+ skipMessaging?: boolean;
96
+ skipPasswordEnrollment?: boolean;
97
+ }): Promise<string>;
98
+ hashPassword(password: any): Promise<{
99
+ pbkdf2: string;
100
+ }>;
101
+ verifyPassword({ bcrypt: bcryptHash, pbkdf2: pbkdf2SaltAndHash }: {
102
+ bcrypt?: string;
103
+ pbkdf2?: string;
104
+ }, plainPassword: string): Promise<boolean>;
105
+ addEmail(userId: string, address: string): Promise<void>;
106
+ removeEmail(userId: string, address: string): Promise<void>;
107
+ sendResetPasswordEmail(userId: string, email: string, isEnrollment?: boolean): Promise<void>;
108
+ sendVerificationEmail(userId: string, email: string): Promise<void>;
109
+ addRoles: (userId: string, roles: Array<string>) => Promise<number>;
110
+ setUsername(userId: string, username: string): Promise<void>;
111
+ setPassword(userId: string, plainPassword: string): Promise<void>;
112
+ updateAvatar: (_id: string, fileId: string) => Promise<User>;
113
+ updateGuest: (user: User, guest: boolean) => Promise<void>;
114
+ updateHeartbeat: (userId: string, lastLogin: UserLastLogin) => Promise<User>;
115
+ delete: (userId: string) => Promise<User>;
116
+ updateProfile: (userId: string, updatedData: {
117
+ profile?: UserProfile;
118
+ meta?: any;
119
+ }) => Promise<User>;
120
+ updateLastBillingAddress: (_id: string, lastBillingAddress: Address) => Promise<User>;
121
+ updateLastContact: (_id: string, lastContact: Contact) => Promise<User>;
122
+ updateRoles: (_id: string, roles: Array<string>) => Promise<User>;
123
+ updateTags: (_id: string, tags: Array<string>) => Promise<User>;
124
+ updateUser: (selector: mongodb.Filter<User>, modifier: mongodb.UpdateFilter<User>, updateOptions?: mongodb.FindOneAndUpdateOptions) => Promise<User>;
125
+ addPushSubscription: (userId: string, subscription: any, subscriptionOptions?: {
126
+ userAgent: string;
127
+ unsubscribeFromOtherUsers: boolean;
128
+ }) => Promise<void>;
129
+ removePushSubscription: (userId: string, p256dh: string) => Promise<void>;
130
+ }>;
131
+ //# sourceMappingURL=configureUsersModule_LOCAL_57123.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureUsersModule_LOCAL_57123.d.ts","sourceRoot":"","sources":["../../src/module/configureUsersModule_LOCAL_57123.ts"],"names":[],"mappings":"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"}