@unchainedshop/api 2.10.6 → 2.11.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.
- package/lib/resolvers/mutations/accounts/addWeb3Address.js +1 -2
- package/lib/resolvers/mutations/accounts/addWeb3Address.js.map +1 -1
- package/lib/resolvers/mutations/accounts/addWebAuthnCredentials.js +1 -2
- package/lib/resolvers/mutations/accounts/addWebAuthnCredentials.js.map +1 -1
- package/lib/resolvers/mutations/accounts/removeWeb3Address.js +1 -2
- package/lib/resolvers/mutations/accounts/removeWeb3Address.js.map +1 -1
- package/lib/resolvers/mutations/accounts/removeWebAuthnCredentials.js +1 -2
- package/lib/resolvers/mutations/accounts/removeWebAuthnCredentials.js.map +1 -1
- package/lib/resolvers/mutations/accounts/resetPassword.js +29 -0
- package/lib/resolvers/mutations/accounts/resetPassword.js.map +1 -1
- package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.js +1 -2
- package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.js.map +1 -1
- package/lib/resolvers/mutations/accounts/verifyWeb3Address.js +1 -2
- package/lib/resolvers/mutations/accounts/verifyWeb3Address.js.map +1 -1
- package/package.json +8 -8
- package/src/resolvers/mutations/accounts/addWeb3Address.ts +1 -3
- package/src/resolvers/mutations/accounts/addWebAuthnCredentials.ts +1 -3
- package/src/resolvers/mutations/accounts/removeWeb3Address.ts +1 -3
- package/src/resolvers/mutations/accounts/removeWebAuthnCredentials.ts +1 -3
- package/src/resolvers/mutations/accounts/resetPassword.ts +35 -0
- package/src/resolvers/mutations/accounts/unlinkOAuthAccount.ts +1 -3
- package/src/resolvers/mutations/accounts/verifyWeb3Address.ts +1 -3
|
@@ -13,7 +13,7 @@ export default async function addWeb3Address(root, { address }, { modules, userI
|
|
|
13
13
|
if (foundAlreadyExistingEntryForAddress)
|
|
14
14
|
return user;
|
|
15
15
|
const nonce = Math.floor(Math.random() * 1000000).toString();
|
|
16
|
-
|
|
16
|
+
return modules.users.updateUser({ _id: userId }, {
|
|
17
17
|
$push: {
|
|
18
18
|
'services.web3': {
|
|
19
19
|
address,
|
|
@@ -21,6 +21,5 @@ export default async function addWeb3Address(root, { address }, { modules, userI
|
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
}, {});
|
|
24
|
-
return modules.users.findUserById(userId);
|
|
25
24
|
}
|
|
26
25
|
//# sourceMappingURL=addWeb3Address.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addWeb3Address.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/addWeb3Address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,IAAU,EACV,EAAE,OAAO,EAAoB,EAC7B,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,EAAE;QAC9C,MAAM;KACP,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,2BAA2B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,mCAAmC,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChF,OAAO,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAI,mCAAmC;QAAE,OAAO,IAAI,CAAC;IAErD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7D,
|
|
1
|
+
{"version":3,"file":"addWeb3Address.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/addWeb3Address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,IAAU,EACV,EAAE,OAAO,EAAoB,EAC7B,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,EAAE;QAC9C,MAAM;KACP,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,2BAA2B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,mCAAmC,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChF,OAAO,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAI,mCAAmC;QAAE,OAAO,IAAI,CAAC;IAErD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7D,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,KAAK,EAAE;YACL,eAAe,EAAE;gBACf,OAAO;gBACP,KAAK;aACN;SACF;KACF,EACD,EAAE,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -4,11 +4,10 @@ export default async function addWebAuthnCredentials(root, { credentials }, { mo
|
|
|
4
4
|
userId,
|
|
5
5
|
});
|
|
6
6
|
const webAuthnService = await modules.accounts.webAuthn.verifyCredentialCreation(user.username, credentials);
|
|
7
|
-
|
|
7
|
+
return modules.users.updateUser({ _id: userId }, {
|
|
8
8
|
$push: {
|
|
9
9
|
'services.webAuthn': webAuthnService,
|
|
10
10
|
},
|
|
11
11
|
}, {});
|
|
12
|
-
return modules.users.findUserById(userId);
|
|
13
12
|
}
|
|
14
13
|
//# sourceMappingURL=addWebAuthnCredentials.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addWebAuthnCredentials.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/addWebAuthnCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,sBAAsB,CAClD,IAAU,EACV,EAAE,WAAW,EAAwB,EACrC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,mCAAmC,IAAI,CAAC,QAAQ,EAAE,EAAE;QACtD,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAC9E,IAAI,CAAC,QAAQ,EACb,WAAW,CACZ,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"addWebAuthnCredentials.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/addWebAuthnCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,sBAAsB,CAClD,IAAU,EACV,EAAE,WAAW,EAAwB,EACrC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,mCAAmC,IAAI,CAAC,QAAQ,EAAE,EAAE;QACtD,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAC9E,IAAI,CAAC,QAAQ,EACb,WAAW,CACZ,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,KAAK,EAAE;YACL,mBAAmB,EAAE,eAAe;SACrC;KACF,EACD,EAAE,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -8,11 +8,10 @@ export default async function removeWeb3Address(root, { address }, { modules, us
|
|
|
8
8
|
if (!foundCredentials) {
|
|
9
9
|
throw new UserWeb3AddressNotFoundError({ userId, address });
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
return modules.users.updateUser({ _id: userId }, {
|
|
12
12
|
$pull: {
|
|
13
13
|
'services.web3': { address: foundCredentials.address },
|
|
14
14
|
},
|
|
15
15
|
}, {});
|
|
16
|
-
return modules.users.findUserById(userId);
|
|
17
16
|
}
|
|
18
17
|
//# sourceMappingURL=removeWeb3Address.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeWeb3Address.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/removeWeb3Address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAU,EACV,EAAE,OAAO,EAAuB,EAChC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,8BAA8B,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;QAC5D,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAChD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACrE,CAAC;IACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,4BAA4B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"removeWeb3Address.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/removeWeb3Address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAU,EACV,EAAE,OAAO,EAAuB,EAChC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,8BAA8B,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;QAC5D,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAChD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACrE,CAAC;IACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,4BAA4B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,KAAK,EAAE;YACL,eAAe,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE;SACvD;KACF,EACD,EAAE,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -8,11 +8,10 @@ export default async function removeWebAuthnCredentials(root, { credentialsId },
|
|
|
8
8
|
if (!foundCredentials) {
|
|
9
9
|
throw new UserWebAuthnCredentialsNotFoundError({ userId, credentialsId });
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
return modules.users.updateUser({ _id: userId }, {
|
|
12
12
|
$pull: {
|
|
13
13
|
'services.webAuthn': { id: credentialsId },
|
|
14
14
|
},
|
|
15
15
|
}, {});
|
|
16
|
-
return modules.users.findUserById(userId);
|
|
17
16
|
}
|
|
18
17
|
//# sourceMappingURL=removeWebAuthnCredentials.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeWebAuthnCredentials.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/removeWebAuthnCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,yBAAyB,CACrD,IAAU,EACV,EAAE,aAAa,EAA6B,EAC5C,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,sCAAsC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;QAC1E,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC;IAClG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,oCAAoC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"removeWebAuthnCredentials.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/removeWebAuthnCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,yBAAyB,CACrD,IAAU,EACV,EAAE,aAAa,EAA6B,EAC5C,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,sCAAsC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;QAC1E,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC;IAClG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,oCAAoC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,KAAK,EAAE;YACL,mBAAmB,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE;SAC3C;KACF,EACD,EAAE,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { log } from '@unchainedshop/logger';
|
|
2
|
+
import { emailRegexOperator } from '@unchainedshop/mongodb';
|
|
2
3
|
import { AuthOperationFailedError, InvalidResetTokenError, NoEmailSetError, ResetPasswordLinkExpiredError, ResetPasswordLinkUnknownAddressError, } from '../../../errors.js';
|
|
3
4
|
export default async function resetPassword(root, params, context) {
|
|
4
5
|
const { modules, userId } = context;
|
|
@@ -8,10 +9,38 @@ export default async function resetPassword(root, params, context) {
|
|
|
8
9
|
}
|
|
9
10
|
try {
|
|
10
11
|
const userWithNewPassword = await modules.accounts.resetPassword(params, context);
|
|
12
|
+
const resetTicket = userWithNewPassword?.services?.password?.reset?.find((t) => t.token === params.token);
|
|
13
|
+
if (resetTicket.address) {
|
|
14
|
+
// Try verifying the E-Mail along the way
|
|
15
|
+
try {
|
|
16
|
+
const updatedUser = await modules.users.updateUser({
|
|
17
|
+
_id: userWithNewPassword.id,
|
|
18
|
+
emails: {
|
|
19
|
+
$elemMatch: {
|
|
20
|
+
address: emailRegexOperator(resetTicket.address),
|
|
21
|
+
verified: false,
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
}, {
|
|
25
|
+
$set: {
|
|
26
|
+
'emails.$[email].verified': true,
|
|
27
|
+
},
|
|
28
|
+
}, {
|
|
29
|
+
arrayFilters: [{ 'email.address': resetTicket.address }],
|
|
30
|
+
});
|
|
31
|
+
if (updatedUser) {
|
|
32
|
+
await modules.accounts.emit('VerifyEmailSuccess', updatedUser);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
/* */
|
|
37
|
+
}
|
|
38
|
+
}
|
|
11
39
|
const result = await modules.accounts.createLoginToken(userWithNewPassword.id, context);
|
|
12
40
|
return result;
|
|
13
41
|
}
|
|
14
42
|
catch (e) {
|
|
43
|
+
log(e);
|
|
15
44
|
if (e.code === 'InvalidToken')
|
|
16
45
|
throw new InvalidResetTokenError({});
|
|
17
46
|
if (e.code === 'ResetPasswordLinkExpired')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resetPassword.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/resetPassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CACzC,IAAU,EACV,MAAoD,EACpD,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEpC,GAAG,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC;QACH,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAElF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACxF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc;YAAE,MAAM,IAAI,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,IAAI,KAAK,0BAA0B;YAAE,MAAM,IAAI,6BAA6B,CAAC,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,CAAC,IAAI,KAAK,kCAAkC;YAC/C,MAAM,IAAI,oCAAoC,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"resetPassword.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/resetPassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CACzC,IAAU,EACV,MAAoD,EACpD,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEpC,GAAG,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC;QACH,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAElF,MAAM,WAAW,GAAG,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CACtE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAChC,CAAC;QACF,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,yCAAyC;YACzC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAChD;oBACE,GAAG,EAAE,mBAAmB,CAAC,EAAE;oBAC3B,MAAM,EAAE;wBACN,UAAU,EAAE;4BACV,OAAO,EAAE,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC;4BAChD,QAAQ,EAAE,KAAK;yBAChB;qBACF;iBACF,EACD;oBACE,IAAI,EAAE;wBACJ,0BAA0B,EAAE,IAAI;qBACjC;iBACF,EACD;oBACE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;iBACzD,CACF,CAAC;gBACF,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,KAAK;YACP,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACxF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc;YAAE,MAAM,IAAI,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,IAAI,KAAK,0BAA0B;YAAE,MAAM,IAAI,6BAA6B,CAAC,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,CAAC,IAAI,KAAK,kCAAkC;YAC/C,MAAM,IAAI,oCAAoC,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
|
|
@@ -4,11 +4,10 @@ export default async function unlinkOAuthAccount(root, { provider, oAuthAccountI
|
|
|
4
4
|
log(`mutation unlinkOAuthAccount ${provider} ${oAuthAccountId}`, {
|
|
5
5
|
userId,
|
|
6
6
|
});
|
|
7
|
-
|
|
7
|
+
return modules.users.updateUser({ _id: userId }, {
|
|
8
8
|
$pull: {
|
|
9
9
|
[`services.oauth.${provider}`]: { id: oAuthAccountId },
|
|
10
10
|
},
|
|
11
11
|
}, { upsert: true });
|
|
12
|
-
return modules.users.findUserById(userId);
|
|
13
12
|
}
|
|
14
13
|
//# sourceMappingURL=unlinkOAuthAccount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlinkOAuthAccount.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/unlinkOAuthAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC9C,IAAU,EACV,EAAE,QAAQ,EAAE,cAAc,EAAgD,EAC1E,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEpC,GAAG,CAAC,+BAA+B,QAAQ,IAAI,cAAc,EAAE,EAAE;QAC/D,MAAM;KACP,CAAC,CAAC;IAEH,
|
|
1
|
+
{"version":3,"file":"unlinkOAuthAccount.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/unlinkOAuthAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC9C,IAAU,EACV,EAAE,QAAQ,EAAE,cAAc,EAAgD,EAC1E,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEpC,GAAG,CAAC,+BAA+B,QAAQ,IAAI,cAAc,EAAE,EAAE;QAC/D,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,KAAK,EAAE;YACL,CAAC,kBAAkB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;SACvD;KACF,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;AACJ,CAAC"}
|
|
@@ -28,13 +28,12 @@ export default async function verifyWeb3Address(root, { address, hash }, { modul
|
|
|
28
28
|
}
|
|
29
29
|
return service;
|
|
30
30
|
});
|
|
31
|
-
|
|
31
|
+
return modules.users.updateUser({ _id: userId }, {
|
|
32
32
|
$set: {
|
|
33
33
|
// eslint-disable-next-line
|
|
34
34
|
// @ts-ignore
|
|
35
35
|
'services.web3': web3Services,
|
|
36
36
|
},
|
|
37
37
|
}, {});
|
|
38
|
-
return modules.users.findUserById(userId);
|
|
39
38
|
}
|
|
40
39
|
//# sourceMappingURL=verifyWeb3Address.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyWeb3Address.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/verifyWeb3Address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEjG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAU,EACV,EAAE,OAAO,EAAE,IAAI,EAAqC,EACpD,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,8BAA8B,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;QAC5D,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAChD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACrE,CAAC;IACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,4BAA4B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAE/E,MAAM,aAAa,GAAG,wBAAwB,CAAC;QAC7C,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,0BAA0B,GAC9B,aAAa,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAEzE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,6BAA6B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,YAAY,GAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7D,IAAI,gBAAgB,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YACjD,OAAO;gBACL,GAAG,OAAO;gBACV,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,
|
|
1
|
+
{"version":3,"file":"verifyWeb3Address.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/verifyWeb3Address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEjG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAU,EACV,EAAE,OAAO,EAAE,IAAI,EAAqC,EACpD,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW;IAElC,GAAG,CAAC,8BAA8B,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;QAC5D,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAChD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACrE,CAAC;IACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,4BAA4B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAE/E,MAAM,aAAa,GAAG,wBAAwB,CAAC;QAC7C,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,0BAA0B,GAC9B,aAAa,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAEzE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,6BAA6B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,YAAY,GAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7D,IAAI,gBAAgB,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YACjD,OAAO;gBACL,GAAG,OAAO;gBACV,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,IAAI,EAAE;YACJ,2BAA2B;YAC3B,aAAa;YACb,eAAe,EAAE,YAAY;SAC9B;KACF,EACD,EAAE,CACH,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/api",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.0",
|
|
4
4
|
"main": "lib/api-index.js",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./lib/api-index.js",
|
|
@@ -48,11 +48,11 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@metamask/eth-sig-util": "^7.0.2",
|
|
51
|
-
"@unchainedshop/core": "^2.
|
|
52
|
-
"@unchainedshop/events": "^2.
|
|
53
|
-
"@unchainedshop/logger": "^2.
|
|
54
|
-
"@unchainedshop/roles": "^2.
|
|
55
|
-
"@unchainedshop/utils": "^2.
|
|
51
|
+
"@unchainedshop/core": "^2.11.0",
|
|
52
|
+
"@unchainedshop/events": "^2.11.0",
|
|
53
|
+
"@unchainedshop/logger": "^2.11.0",
|
|
54
|
+
"@unchainedshop/roles": "^2.11.0",
|
|
55
|
+
"@unchainedshop/utils": "^2.11.0",
|
|
56
56
|
"accounting": "0.4.1",
|
|
57
57
|
"dataloader": "^2.2.2",
|
|
58
58
|
"graphql-scalars": "^1.23.0",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@types/graphql-upload": "^16.0.7",
|
|
66
66
|
"@types/locale": "^0.1.4",
|
|
67
|
-
"@types/node": "^20.14.
|
|
68
|
-
"@unchainedshop/types": "^2.
|
|
67
|
+
"@types/node": "^20.14.8",
|
|
68
|
+
"@unchainedshop/types": "^2.11.0",
|
|
69
69
|
"express": "^4.19.2",
|
|
70
70
|
"jest": "^29.7.0",
|
|
71
71
|
"ts-jest": "^29.1.5",
|
|
@@ -22,7 +22,7 @@ export default async function addWeb3Address(
|
|
|
22
22
|
if (foundAlreadyExistingEntryForAddress) return user;
|
|
23
23
|
|
|
24
24
|
const nonce = Math.floor(Math.random() * 1000000).toString();
|
|
25
|
-
|
|
25
|
+
return modules.users.updateUser(
|
|
26
26
|
{ _id: userId },
|
|
27
27
|
{
|
|
28
28
|
$push: {
|
|
@@ -34,6 +34,4 @@ export default async function addWeb3Address(
|
|
|
34
34
|
},
|
|
35
35
|
{},
|
|
36
36
|
);
|
|
37
|
-
|
|
38
|
-
return modules.users.findUserById(userId);
|
|
39
37
|
}
|
|
@@ -15,7 +15,7 @@ export default async function addWebAuthnCredentials(
|
|
|
15
15
|
credentials,
|
|
16
16
|
);
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
return modules.users.updateUser(
|
|
19
19
|
{ _id: userId },
|
|
20
20
|
{
|
|
21
21
|
$push: {
|
|
@@ -24,6 +24,4 @@ export default async function addWebAuthnCredentials(
|
|
|
24
24
|
},
|
|
25
25
|
{},
|
|
26
26
|
);
|
|
27
|
-
|
|
28
|
-
return modules.users.findUserById(userId);
|
|
29
27
|
}
|
|
@@ -18,7 +18,7 @@ export default async function removeWeb3Address(
|
|
|
18
18
|
throw new UserWeb3AddressNotFoundError({ userId, address });
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
return modules.users.updateUser(
|
|
22
22
|
{ _id: userId },
|
|
23
23
|
{
|
|
24
24
|
$pull: {
|
|
@@ -27,6 +27,4 @@ export default async function removeWeb3Address(
|
|
|
27
27
|
},
|
|
28
28
|
{},
|
|
29
29
|
);
|
|
30
|
-
|
|
31
|
-
return modules.users.findUserById(userId);
|
|
32
30
|
}
|
|
@@ -16,7 +16,7 @@ export default async function removeWebAuthnCredentials(
|
|
|
16
16
|
throw new UserWebAuthnCredentialsNotFoundError({ userId, credentialsId });
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
return modules.users.updateUser(
|
|
20
20
|
{ _id: userId },
|
|
21
21
|
{
|
|
22
22
|
$pull: {
|
|
@@ -25,6 +25,4 @@ export default async function removeWebAuthnCredentials(
|
|
|
25
25
|
},
|
|
26
26
|
{},
|
|
27
27
|
);
|
|
28
|
-
|
|
29
|
-
return modules.users.findUserById(userId);
|
|
30
28
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { log } from '@unchainedshop/logger';
|
|
2
2
|
import { Context, Root } from '@unchainedshop/types/api.js';
|
|
3
|
+
import { emailRegexOperator } from '@unchainedshop/mongodb';
|
|
3
4
|
import {
|
|
4
5
|
AuthOperationFailedError,
|
|
5
6
|
InvalidResetTokenError,
|
|
@@ -23,9 +24,43 @@ export default async function resetPassword(
|
|
|
23
24
|
try {
|
|
24
25
|
const userWithNewPassword = await modules.accounts.resetPassword(params, context);
|
|
25
26
|
|
|
27
|
+
const resetTicket = userWithNewPassword?.services?.password?.reset?.find(
|
|
28
|
+
(t) => t.token === params.token,
|
|
29
|
+
);
|
|
30
|
+
if (resetTicket.address) {
|
|
31
|
+
// Try verifying the E-Mail along the way
|
|
32
|
+
try {
|
|
33
|
+
const updatedUser = await modules.users.updateUser(
|
|
34
|
+
{
|
|
35
|
+
_id: userWithNewPassword.id,
|
|
36
|
+
emails: {
|
|
37
|
+
$elemMatch: {
|
|
38
|
+
address: emailRegexOperator(resetTicket.address),
|
|
39
|
+
verified: false,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
$set: {
|
|
45
|
+
'emails.$[email].verified': true,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
arrayFilters: [{ 'email.address': resetTicket.address }],
|
|
50
|
+
},
|
|
51
|
+
);
|
|
52
|
+
if (updatedUser) {
|
|
53
|
+
await modules.accounts.emit('VerifyEmailSuccess', updatedUser);
|
|
54
|
+
}
|
|
55
|
+
} catch (e) {
|
|
56
|
+
/* */
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
26
60
|
const result = await modules.accounts.createLoginToken(userWithNewPassword.id, context);
|
|
27
61
|
return result;
|
|
28
62
|
} catch (e) {
|
|
63
|
+
log(e);
|
|
29
64
|
if (e.code === 'InvalidToken') throw new InvalidResetTokenError({});
|
|
30
65
|
if (e.code === 'ResetPasswordLinkExpired') throw new ResetPasswordLinkExpiredError({});
|
|
31
66
|
if (e.code === 'ResetPasswordLinkUnknownAddress')
|
|
@@ -12,7 +12,7 @@ export default async function unlinkOAuthAccount(
|
|
|
12
12
|
userId,
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
return modules.users.updateUser(
|
|
16
16
|
{ _id: userId },
|
|
17
17
|
{
|
|
18
18
|
$pull: {
|
|
@@ -21,6 +21,4 @@ export default async function unlinkOAuthAccount(
|
|
|
21
21
|
},
|
|
22
22
|
{ upsert: true },
|
|
23
23
|
);
|
|
24
|
-
|
|
25
|
-
return modules.users.findUserById(userId);
|
|
26
24
|
}
|
|
@@ -44,7 +44,7 @@ export default async function verifyWeb3Address(
|
|
|
44
44
|
return service;
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
return modules.users.updateUser(
|
|
48
48
|
{ _id: userId },
|
|
49
49
|
{
|
|
50
50
|
$set: {
|
|
@@ -55,6 +55,4 @@ export default async function verifyWeb3Address(
|
|
|
55
55
|
},
|
|
56
56
|
{},
|
|
57
57
|
);
|
|
58
|
-
|
|
59
|
-
return modules.users.findUserById(userId);
|
|
60
58
|
}
|