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

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 (61) 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/addMigrations.d.ts.map +1 -1
  8. package/lib/module/addMigrations.js +32 -41
  9. package/lib/module/addMigrations.js.map +1 -1
  10. package/lib/module/configureUsersModule.d.ts +85 -48
  11. package/lib/module/configureUsersModule.d.ts.map +1 -1
  12. package/lib/module/configureUsersModule.js +49 -20
  13. package/lib/module/configureUsersModule.js.map +1 -1
  14. package/lib/module/configureUsersWebAuthnModule.d.ts +21 -8
  15. package/lib/module/configureUsersWebAuthnModule.d.ts.map +1 -1
  16. package/lib/module/configureUsersWebAuthnModule.js +32 -11
  17. package/lib/module/configureUsersWebAuthnModule.js.map +1 -1
  18. package/lib/module/pbkdf2.js +1 -1
  19. package/lib/module/pbkdf2.js.map +1 -1
  20. package/lib/users-index.d.ts +3 -1
  21. package/lib/users-index.d.ts.map +1 -1
  22. package/lib/users-index.js +3 -1
  23. package/lib/users-index.js.map +1 -1
  24. package/lib/users-settings.d.ts +1 -1
  25. package/lib/users-settings.d.ts.map +1 -1
  26. package/lib/users-settings.js.map +1 -1
  27. package/package.json +20 -9
  28. package/src/db/UsersCollection.ts +59 -2
  29. package/src/db/WebAuthnCredentialsCreationRequestsCollection.ts +7 -1
  30. package/src/module/addMigrations.ts +40 -53
  31. package/src/module/configureUsersModule.ts +83 -105
  32. package/src/module/configureUsersWebAuthnModule.ts +47 -43
  33. package/src/module/pbkdf2.ts +1 -1
  34. package/src/module/removeConfidentialServiceHashes.test.ts +1 -1
  35. package/src/users-index.ts +3 -1
  36. package/src/users-settings.ts +1 -2
  37. package/lib/module/configureUsersModule_BACKUP_57123.d.ts +0 -73
  38. package/lib/module/configureUsersModule_BACKUP_57123.d.ts.map +0 -1
  39. package/lib/module/configureUsersModule_BACKUP_57123.js +0 -567
  40. package/lib/module/configureUsersModule_BACKUP_57123.js.map +0 -1
  41. package/lib/module/configureUsersModule_BASE_57123.d.ts +0 -131
  42. package/lib/module/configureUsersModule_BASE_57123.d.ts.map +0 -1
  43. package/lib/module/configureUsersModule_BASE_57123.js +0 -563
  44. package/lib/module/configureUsersModule_BASE_57123.js.map +0 -1
  45. package/lib/module/configureUsersModule_LOCAL_57123.d.ts +0 -131
  46. package/lib/module/configureUsersModule_LOCAL_57123.d.ts.map +0 -1
  47. package/lib/module/configureUsersModule_LOCAL_57123.js +0 -564
  48. package/lib/module/configureUsersModule_LOCAL_57123.js.map +0 -1
  49. package/lib/module/configureUsersModule_REMOTE_57123.d.ts +0 -74
  50. package/lib/module/configureUsersModule_REMOTE_57123.d.ts.map +0 -1
  51. package/lib/module/configureUsersModule_REMOTE_57123.js +0 -567
  52. package/lib/module/configureUsersModule_REMOTE_57123.js.map +0 -1
  53. package/lib/module/sha256.d.ts +0 -2
  54. package/lib/module/sha256.d.ts.map +0 -1
  55. package/lib/module/sha256.js +0 -6
  56. package/lib/module/sha256.js.map +0 -1
  57. package/lib/types.d.ts +0 -91
  58. package/lib/types.d.ts.map +0 -1
  59. package/lib/types.js +0 -2
  60. package/lib/types.js.map +0 -1
  61. package/src/types.ts +0 -104
@@ -1,131 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureUsersModule_LOCAL_57123.d.ts","sourceRoot":"","sources":["../../src/module/configureUsersModule_LOCAL_57123.ts"],"names":[],"mappings":"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"}