@unchainedshop/core-users 3.0.0-alpha7 → 3.0.0-rc10
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/lib/db/UsersCollection.d.ts +54 -2
- package/lib/db/UsersCollection.d.ts.map +1 -1
- package/lib/db/UsersCollection.js.map +1 -1
- package/lib/db/WebAuthnCredentialsCreationRequestsCollection.d.ts +6 -1
- package/lib/db/WebAuthnCredentialsCreationRequestsCollection.d.ts.map +1 -1
- package/lib/db/WebAuthnCredentialsCreationRequestsCollection.js.map +1 -1
- package/lib/module/addMigrations.d.ts.map +1 -1
- package/lib/module/addMigrations.js +32 -41
- package/lib/module/addMigrations.js.map +1 -1
- package/lib/module/configureUsersModule.d.ts +49 -70
- package/lib/module/configureUsersModule.d.ts.map +1 -1
- package/lib/module/configureUsersModule.js +105 -71
- package/lib/module/configureUsersModule.js.map +1 -1
- package/lib/module/configureUsersWebAuthnModule.d.ts +21 -8
- package/lib/module/configureUsersWebAuthnModule.d.ts.map +1 -1
- package/lib/module/configureUsersWebAuthnModule.js +32 -11
- package/lib/module/configureUsersWebAuthnModule.js.map +1 -1
- package/lib/module/pbkdf2.js +1 -1
- package/lib/module/pbkdf2.js.map +1 -1
- package/lib/users-index.d.ts +3 -2
- package/lib/users-index.d.ts.map +1 -1
- package/lib/users-index.js +3 -2
- package/lib/users-index.js.map +1 -1
- package/lib/users-settings.d.ts +1 -1
- package/lib/users-settings.d.ts.map +1 -1
- package/lib/users-settings.js.map +1 -1
- package/package.json +26 -18
- package/src/db/UsersCollection.ts +59 -2
- package/src/db/WebAuthnCredentialsCreationRequestsCollection.ts +7 -1
- package/src/module/addMigrations.ts +40 -53
- package/src/module/configureUsersModule.ts +152 -169
- package/src/module/configureUsersWebAuthnModule.ts +47 -44
- package/src/module/pbkdf2.ts +1 -1
- package/src/module/removeConfidentialServiceHashes.test.ts +1 -1
- package/src/users-index.ts +3 -2
- package/src/users-settings.ts +1 -2
- package/tests/mock/user-mock.ts +2 -3
- package/tsconfig.json +5 -7
- package/lib/module/sha256.d.ts +0 -2
- package/lib/module/sha256.d.ts.map +0 -1
- package/lib/module/sha256.js +0 -6
- package/lib/module/sha256.js.map +0 -1
- package/lib/services/migrateUserDataService.d.ts +0 -4
- package/lib/services/migrateUserDataService.d.ts.map +0 -1
- package/lib/services/migrateUserDataService.js +0 -18
- package/lib/services/migrateUserDataService.js.map +0 -1
- package/lib/services/updateUserAvatarAfterUploadService.d.ts +0 -15
- package/lib/services/updateUserAvatarAfterUploadService.d.ts.map +0 -1
- package/lib/services/updateUserAvatarAfterUploadService.js +0 -24
- package/lib/services/updateUserAvatarAfterUploadService.js.map +0 -1
- package/lib/services/userServices.d.ts +0 -8
- package/lib/services/userServices.d.ts.map +0 -1
- package/lib/services/userServices.js +0 -7
- package/lib/services/userServices.js.map +0 -1
- package/lib/types.d.ts +0 -88
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -2
- package/lib/types.js.map +0 -1
- package/src/module/sha256.ts +0 -5
- package/src/services/migrateUserDataService.ts +0 -37
- package/src/services/updateUserAvatarAfterUploadService.ts +0 -42
- package/src/services/userServices.ts +0 -15
- package/src/types.ts +0 -101
package/src/users-settings.ts
CHANGED
package/tests/mock/user-mock.ts
CHANGED
|
@@ -2,7 +2,7 @@ export default {
|
|
|
2
2
|
_id: 'PKve0k9fLCUzn2EUi',
|
|
3
3
|
guest: false,
|
|
4
4
|
initialPassword: false,
|
|
5
|
-
lastBillingAddress:
|
|
5
|
+
lastBillingAddress: null,
|
|
6
6
|
profile: {
|
|
7
7
|
address: {
|
|
8
8
|
firstName: null,
|
|
@@ -65,9 +65,8 @@ export default {
|
|
|
65
65
|
remotePort: '42978',
|
|
66
66
|
userAgent:
|
|
67
67
|
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
|
|
68
|
-
locale: '
|
|
68
|
+
locale: 'de-CH',
|
|
69
69
|
countryCode: 'CH',
|
|
70
70
|
},
|
|
71
71
|
updated: new Date('2022-11-30T11:02:19.624Z'),
|
|
72
|
-
updatedBy: 'PKve0k9fLCUzn2EUi',
|
|
73
72
|
};
|
package/tsconfig.json
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "../shared/base.tsconfig.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
|
-
"
|
|
5
|
-
"
|
|
4
|
+
"declarationDir": "./lib",
|
|
5
|
+
"rootDir": "./src",
|
|
6
|
+
"outDir": "./lib"
|
|
6
7
|
},
|
|
7
|
-
"exclude": ["**/*.test.ts", "**/*.test.js", "tests"]
|
|
8
|
-
|
|
9
|
-
"./src"
|
|
10
|
-
]
|
|
11
|
-
}
|
|
8
|
+
"exclude": ["**/*.test.ts", "**/*.test.js", "tests", "lib"]
|
|
9
|
+
}
|
package/lib/module/sha256.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sha256.d.ts","sourceRoot":"","sources":["../../src/module/sha256.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,mCAIhB,CAAC"}
|
package/lib/module/sha256.js
DELETED
package/lib/module/sha256.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sha256.js","sourceRoot":"","sources":["../../src/module/sha256.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE;IACpC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
|
-
export type MigrateUserDataService = (userIdBeforeLogin: any, userId: any, unchainedAPI: UnchainedCore) => Promise<void>;
|
|
3
|
-
export declare const migrateUserDataService: MigrateUserDataService;
|
|
4
|
-
//# sourceMappingURL=migrateUserDataService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrateUserDataService.d.ts","sourceRoot":"","sources":["../../src/services/migrateUserDataService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,MAAM,sBAAsB,GAAG,CACnC,iBAAiB,KAAA,EACjB,MAAM,KAAA,EACN,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,sBAAsB,EAAE,sBA2BpC,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { userSettings } from '../users-settings.js';
|
|
2
|
-
export const migrateUserDataService = async (userIdBeforeLogin, userId, unchainedAPI) => {
|
|
3
|
-
const user = await unchainedAPI.modules.users.findUserById(userId);
|
|
4
|
-
const userBeforeLogin = await unchainedAPI.modules.users.findUserById(userIdBeforeLogin);
|
|
5
|
-
await unchainedAPI.services.orders.migrateOrderCarts({
|
|
6
|
-
fromUserId: userIdBeforeLogin,
|
|
7
|
-
toUserId: userId,
|
|
8
|
-
shouldMerge: userSettings.mergeUserCartsOnLogin,
|
|
9
|
-
countryContext: userBeforeLogin.lastLogin?.countryCode || user.lastLogin?.countryCode,
|
|
10
|
-
}, unchainedAPI);
|
|
11
|
-
await unchainedAPI.services.bookmarks.migrateBookmarks({
|
|
12
|
-
fromUserId: userIdBeforeLogin,
|
|
13
|
-
toUserId: userId,
|
|
14
|
-
shouldMerge: userSettings.mergeUserCartsOnLogin,
|
|
15
|
-
countryContext: userBeforeLogin.lastLogin?.countryCode || user.lastLogin?.countryCode,
|
|
16
|
-
}, unchainedAPI);
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=migrateUserDataService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrateUserDataService.js","sourceRoot":"","sources":["../../src/services/migrateUserDataService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQpD,MAAM,CAAC,MAAM,sBAAsB,GAA2B,KAAK,EACjE,iBAAiB,EACjB,MAAM,EACN,YAAY,EACZ,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAEzF,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAClD;QACE,UAAU,EAAE,iBAAiB;QAC7B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,YAAY,CAAC,qBAAqB;QAC/C,cAAc,EAAE,eAAe,CAAC,SAAS,EAAE,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW;KACtF,EACD,YAAY,CACb,CAAC;IAEF,MAAM,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CACpD;QACE,UAAU,EAAE,iBAAiB;QAC7B,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,YAAY,CAAC,qBAAqB;QAC/C,cAAc,EAAE,eAAe,CAAC,SAAS,EAAE,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW;KACtF,EACD,YAAY,CACb,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { File, FileServices, FilesModule } from '@unchainedshop/core-files';
|
|
2
|
-
import { UsersModule } from '../users-index.js';
|
|
3
|
-
export type UpdateUserAvatarAfterUploadService = (params: {
|
|
4
|
-
file: File;
|
|
5
|
-
}, context: {
|
|
6
|
-
modules: {
|
|
7
|
-
files: FilesModule;
|
|
8
|
-
users: UsersModule;
|
|
9
|
-
};
|
|
10
|
-
services: {
|
|
11
|
-
files: FileServices;
|
|
12
|
-
};
|
|
13
|
-
}) => Promise<void>;
|
|
14
|
-
export declare const updateUserAvatarAfterUploadService: UpdateUserAvatarAfterUploadService;
|
|
15
|
-
//# sourceMappingURL=updateUserAvatarAfterUploadService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"updateUserAvatarAfterUploadService.d.ts","sourceRoot":"","sources":["../../src/services/updateUserAvatarAfterUploadService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,kCAAkC,GAAG,CAC/C,MAAM,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,EACtB,OAAO,EAAE;IACP,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAC;IACpD,QAAQ,EAAE;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;CACnC,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,kCAAkC,EAAE,kCA6BhD,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { log, LogLevel } from '@unchainedshop/logger';
|
|
2
|
-
export const updateUserAvatarAfterUploadService = async ({ file }, context) => {
|
|
3
|
-
const { modules, services } = context;
|
|
4
|
-
const { userId } = file.meta;
|
|
5
|
-
const files = await modules.files.findFiles({
|
|
6
|
-
_id: { $ne: file._id },
|
|
7
|
-
path: file.path,
|
|
8
|
-
'meta.userId': userId,
|
|
9
|
-
});
|
|
10
|
-
const fileIds = files.map((f) => f._id);
|
|
11
|
-
try {
|
|
12
|
-
if (fileIds?.length) {
|
|
13
|
-
await services.files.removeFiles({
|
|
14
|
-
fileIds,
|
|
15
|
-
}, context);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
catch (e) {
|
|
19
|
-
// cleanup error, not critical
|
|
20
|
-
log(`could not clean up all old avatars: ${e.message}`, { level: LogLevel.Warning });
|
|
21
|
-
}
|
|
22
|
-
await modules.users.updateAvatar(userId, file._id);
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=updateUserAvatarAfterUploadService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"updateUserAvatarAfterUploadService.js","sourceRoot":"","sources":["../../src/services/updateUserAvatarAfterUploadService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAWtD,MAAM,CAAC,MAAM,kCAAkC,GAAuC,KAAK,EACzF,EAAE,IAAI,EAAE,EACR,OAAO,EACP,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAA0B,CAAC;IAEnD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC1C,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,aAAa,EAAE,MAAM;KACtB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAExC,IAAI,CAAC;QACH,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,QAAQ,CAAC,KAAK,CAAC,WAAW,CAC9B;gBACE,OAAO;aACR,EACD,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,8BAA8B;QAC9B,GAAG,CAAC,uCAAwC,CAAW,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { UpdateUserAvatarAfterUploadService } from './updateUserAvatarAfterUploadService.js';
|
|
2
|
-
import { MigrateUserDataService } from './migrateUserDataService.js';
|
|
3
|
-
export interface UserServices {
|
|
4
|
-
updateUserAvatarAfterUpload: UpdateUserAvatarAfterUploadService;
|
|
5
|
-
migrateUserData: MigrateUserDataService;
|
|
6
|
-
}
|
|
7
|
-
export declare const userServices: UserServices;
|
|
8
|
-
//# sourceMappingURL=userServices.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userServices.d.ts","sourceRoot":"","sources":["../../src/services/userServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kCAAkC,EACnC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAA0B,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE7F,MAAM,WAAW,YAAY;IAC3B,2BAA2B,EAAE,kCAAkC,CAAC;IAChE,eAAe,EAAE,sBAAsB,CAAC;CACzC;AAED,eAAO,MAAM,YAAY,EAAE,YAG1B,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { updateUserAvatarAfterUploadService, } from './updateUserAvatarAfterUploadService.js';
|
|
2
|
-
import { migrateUserDataService } from './migrateUserDataService.js';
|
|
3
|
-
export const userServices = {
|
|
4
|
-
updateUserAvatarAfterUpload: updateUserAvatarAfterUploadService,
|
|
5
|
-
migrateUserData: migrateUserDataService,
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=userServices.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userServices.js","sourceRoot":"","sources":["../../src/services/userServices.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,GAEnC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAA0B,MAAM,6BAA6B,CAAC;AAO7F,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,2BAA2B,EAAE,kCAAkC;IAC/D,eAAe,EAAE,sBAAsB;CACxC,CAAC"}
|
package/lib/types.d.ts
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import type { TimestampFields, Address, Contact, mongodb } from '@unchainedshop/mongodb';
|
|
2
|
-
export interface PushSubscription {
|
|
3
|
-
_id: string;
|
|
4
|
-
userAgent: string;
|
|
5
|
-
expirationTime: number;
|
|
6
|
-
endpoint: string;
|
|
7
|
-
}
|
|
8
|
-
export interface UserProfile {
|
|
9
|
-
displayName?: string;
|
|
10
|
-
birthday?: Date;
|
|
11
|
-
phoneMobile?: string;
|
|
12
|
-
gender?: string;
|
|
13
|
-
address?: Address;
|
|
14
|
-
}
|
|
15
|
-
export interface UserLastLogin {
|
|
16
|
-
timestamp?: Date;
|
|
17
|
-
locale?: string;
|
|
18
|
-
countryCode?: string;
|
|
19
|
-
remoteAddress?: string;
|
|
20
|
-
remotePort?: string;
|
|
21
|
-
userAgent?: string;
|
|
22
|
-
}
|
|
23
|
-
export interface Email {
|
|
24
|
-
address: string;
|
|
25
|
-
verified: boolean;
|
|
26
|
-
}
|
|
27
|
-
export interface WebAuthnCredentials {
|
|
28
|
-
id: string;
|
|
29
|
-
publicKey: string;
|
|
30
|
-
created: Date;
|
|
31
|
-
aaguid: string;
|
|
32
|
-
counter: number;
|
|
33
|
-
mdsMetadata: any;
|
|
34
|
-
}
|
|
35
|
-
export interface Web3Address {
|
|
36
|
-
address: string;
|
|
37
|
-
nonce?: number;
|
|
38
|
-
verified: boolean;
|
|
39
|
-
}
|
|
40
|
-
export interface PushSubscriptionObject {
|
|
41
|
-
userAgent: string;
|
|
42
|
-
endpoint: string;
|
|
43
|
-
expirationTime?: number;
|
|
44
|
-
keys: {
|
|
45
|
-
auth: string;
|
|
46
|
-
p256dh: string;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
export type User = {
|
|
50
|
-
_id?: string;
|
|
51
|
-
deleted?: Date;
|
|
52
|
-
avatarId?: string;
|
|
53
|
-
emails: Array<Email>;
|
|
54
|
-
guest: boolean;
|
|
55
|
-
initialPassword: boolean;
|
|
56
|
-
lastBillingAddress?: Address;
|
|
57
|
-
lastContact?: Contact;
|
|
58
|
-
lastLogin?: UserLastLogin;
|
|
59
|
-
profile?: UserProfile;
|
|
60
|
-
roles: Array<string>;
|
|
61
|
-
services: any;
|
|
62
|
-
tags?: Array<string>;
|
|
63
|
-
pushSubscriptions: Array<PushSubscriptionObject>;
|
|
64
|
-
username?: string;
|
|
65
|
-
meta?: any;
|
|
66
|
-
} & TimestampFields;
|
|
67
|
-
export type UserQuery = mongodb.Filter<User> & {
|
|
68
|
-
includeGuests?: boolean;
|
|
69
|
-
queryString?: string;
|
|
70
|
-
};
|
|
71
|
-
export interface WebAuthnCredentialsCreationRequest {
|
|
72
|
-
challenge: string;
|
|
73
|
-
username: string;
|
|
74
|
-
origin: string;
|
|
75
|
-
factor: 'first' | 'second' | 'either';
|
|
76
|
-
}
|
|
77
|
-
export interface UserData {
|
|
78
|
-
email?: string;
|
|
79
|
-
guest?: boolean;
|
|
80
|
-
initialPassword?: boolean;
|
|
81
|
-
lastBillingAddress?: User['lastBillingAddress'];
|
|
82
|
-
password: string | null;
|
|
83
|
-
webAuthnPublicKeyCredentials?: any;
|
|
84
|
-
profile?: UserProfile;
|
|
85
|
-
roles?: Array<string>;
|
|
86
|
-
username?: string;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js
DELETED
package/lib/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/src/module/sha256.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
|
-
import { userSettings } from '../users-settings.js';
|
|
3
|
-
|
|
4
|
-
export type MigrateUserDataService = (
|
|
5
|
-
userIdBeforeLogin,
|
|
6
|
-
userId,
|
|
7
|
-
unchainedAPI: UnchainedCore,
|
|
8
|
-
) => Promise<void>;
|
|
9
|
-
|
|
10
|
-
export const migrateUserDataService: MigrateUserDataService = async (
|
|
11
|
-
userIdBeforeLogin,
|
|
12
|
-
userId,
|
|
13
|
-
unchainedAPI,
|
|
14
|
-
) => {
|
|
15
|
-
const user = await unchainedAPI.modules.users.findUserById(userId);
|
|
16
|
-
const userBeforeLogin = await unchainedAPI.modules.users.findUserById(userIdBeforeLogin);
|
|
17
|
-
|
|
18
|
-
await unchainedAPI.services.orders.migrateOrderCarts(
|
|
19
|
-
{
|
|
20
|
-
fromUserId: userIdBeforeLogin,
|
|
21
|
-
toUserId: userId,
|
|
22
|
-
shouldMerge: userSettings.mergeUserCartsOnLogin,
|
|
23
|
-
countryContext: userBeforeLogin.lastLogin?.countryCode || user.lastLogin?.countryCode,
|
|
24
|
-
},
|
|
25
|
-
unchainedAPI,
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
await unchainedAPI.services.bookmarks.migrateBookmarks(
|
|
29
|
-
{
|
|
30
|
-
fromUserId: userIdBeforeLogin,
|
|
31
|
-
toUserId: userId,
|
|
32
|
-
shouldMerge: userSettings.mergeUserCartsOnLogin,
|
|
33
|
-
countryContext: userBeforeLogin.lastLogin?.countryCode || user.lastLogin?.countryCode,
|
|
34
|
-
},
|
|
35
|
-
unchainedAPI,
|
|
36
|
-
);
|
|
37
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { File, FileServices, FilesModule } from '@unchainedshop/core-files';
|
|
2
|
-
import { log, LogLevel } from '@unchainedshop/logger';
|
|
3
|
-
import { UsersModule } from '../users-index.js';
|
|
4
|
-
|
|
5
|
-
export type UpdateUserAvatarAfterUploadService = (
|
|
6
|
-
params: { file: File },
|
|
7
|
-
context: {
|
|
8
|
-
modules: { files: FilesModule; users: UsersModule };
|
|
9
|
-
services: { files: FileServices };
|
|
10
|
-
},
|
|
11
|
-
) => Promise<void>;
|
|
12
|
-
|
|
13
|
-
export const updateUserAvatarAfterUploadService: UpdateUserAvatarAfterUploadService = async (
|
|
14
|
-
{ file },
|
|
15
|
-
context,
|
|
16
|
-
) => {
|
|
17
|
-
const { modules, services } = context;
|
|
18
|
-
const { userId } = file.meta as { userId: string };
|
|
19
|
-
|
|
20
|
-
const files = await modules.files.findFiles({
|
|
21
|
-
_id: { $ne: file._id },
|
|
22
|
-
path: file.path,
|
|
23
|
-
'meta.userId': userId,
|
|
24
|
-
});
|
|
25
|
-
const fileIds = files.map((f) => f._id);
|
|
26
|
-
|
|
27
|
-
try {
|
|
28
|
-
if (fileIds?.length) {
|
|
29
|
-
await services.files.removeFiles(
|
|
30
|
-
{
|
|
31
|
-
fileIds,
|
|
32
|
-
},
|
|
33
|
-
context,
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
} catch (e: unknown) {
|
|
37
|
-
// cleanup error, not critical
|
|
38
|
-
log(`could not clean up all old avatars: ${(e as Error).message}`, { level: LogLevel.Warning });
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
await modules.users.updateAvatar(userId, file._id);
|
|
42
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
updateUserAvatarAfterUploadService,
|
|
3
|
-
UpdateUserAvatarAfterUploadService,
|
|
4
|
-
} from './updateUserAvatarAfterUploadService.js';
|
|
5
|
-
import { migrateUserDataService, MigrateUserDataService } from './migrateUserDataService.js';
|
|
6
|
-
|
|
7
|
-
export interface UserServices {
|
|
8
|
-
updateUserAvatarAfterUpload: UpdateUserAvatarAfterUploadService;
|
|
9
|
-
migrateUserData: MigrateUserDataService;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const userServices: UserServices = {
|
|
13
|
-
updateUserAvatarAfterUpload: updateUserAvatarAfterUploadService,
|
|
14
|
-
migrateUserData: migrateUserDataService,
|
|
15
|
-
};
|
package/src/types.ts
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import type { TimestampFields, Address, Contact, mongodb } from '@unchainedshop/mongodb';
|
|
2
|
-
|
|
3
|
-
export interface PushSubscription {
|
|
4
|
-
_id: string;
|
|
5
|
-
userAgent: string;
|
|
6
|
-
expirationTime: number;
|
|
7
|
-
endpoint: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface UserProfile {
|
|
11
|
-
displayName?: string;
|
|
12
|
-
birthday?: Date;
|
|
13
|
-
phoneMobile?: string;
|
|
14
|
-
gender?: string;
|
|
15
|
-
address?: Address;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface UserLastLogin {
|
|
19
|
-
timestamp?: Date;
|
|
20
|
-
locale?: string;
|
|
21
|
-
countryCode?: string;
|
|
22
|
-
remoteAddress?: string;
|
|
23
|
-
remotePort?: string;
|
|
24
|
-
userAgent?: string;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface Email {
|
|
28
|
-
address: string;
|
|
29
|
-
verified: boolean;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface WebAuthnCredentials {
|
|
33
|
-
id: string;
|
|
34
|
-
publicKey: string;
|
|
35
|
-
created: Date;
|
|
36
|
-
aaguid: string;
|
|
37
|
-
counter: number;
|
|
38
|
-
mdsMetadata: any;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface Web3Address {
|
|
42
|
-
address: string;
|
|
43
|
-
nonce?: number;
|
|
44
|
-
verified: boolean;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export interface PushSubscriptionObject {
|
|
48
|
-
userAgent: string;
|
|
49
|
-
endpoint: string;
|
|
50
|
-
expirationTime?: number;
|
|
51
|
-
keys: {
|
|
52
|
-
auth: string;
|
|
53
|
-
p256dh: string;
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export type User = {
|
|
58
|
-
_id?: string;
|
|
59
|
-
deleted?: Date;
|
|
60
|
-
avatarId?: string;
|
|
61
|
-
emails: Array<Email>;
|
|
62
|
-
guest: boolean;
|
|
63
|
-
initialPassword: boolean;
|
|
64
|
-
lastBillingAddress?: Address;
|
|
65
|
-
lastContact?: Contact;
|
|
66
|
-
lastLogin?: UserLastLogin;
|
|
67
|
-
profile?: UserProfile;
|
|
68
|
-
roles: Array<string>;
|
|
69
|
-
services: any;
|
|
70
|
-
tags?: Array<string>;
|
|
71
|
-
pushSubscriptions: Array<PushSubscriptionObject>;
|
|
72
|
-
username?: string;
|
|
73
|
-
meta?: any;
|
|
74
|
-
} & TimestampFields;
|
|
75
|
-
|
|
76
|
-
export type UserQuery = mongodb.Filter<User> & {
|
|
77
|
-
includeGuests?: boolean;
|
|
78
|
-
queryString?: string;
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
export interface WebAuthnCredentialsCreationRequest {
|
|
82
|
-
challenge: string;
|
|
83
|
-
username: string;
|
|
84
|
-
origin: string;
|
|
85
|
-
factor: 'first' | 'second' | 'either';
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/*
|
|
89
|
-
* Module
|
|
90
|
-
*/
|
|
91
|
-
export interface UserData {
|
|
92
|
-
email?: string;
|
|
93
|
-
guest?: boolean;
|
|
94
|
-
initialPassword?: boolean;
|
|
95
|
-
lastBillingAddress?: User['lastBillingAddress'];
|
|
96
|
-
password: string | null;
|
|
97
|
-
webAuthnPublicKeyCredentials?: any;
|
|
98
|
-
profile?: UserProfile;
|
|
99
|
-
roles?: Array<string>;
|
|
100
|
-
username?: string;
|
|
101
|
-
}
|