@unchainedshop/api 2.10.7 → 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.
Files changed (22) hide show
  1. package/lib/resolvers/mutations/accounts/addWeb3Address.js +1 -2
  2. package/lib/resolvers/mutations/accounts/addWeb3Address.js.map +1 -1
  3. package/lib/resolvers/mutations/accounts/addWebAuthnCredentials.js +1 -2
  4. package/lib/resolvers/mutations/accounts/addWebAuthnCredentials.js.map +1 -1
  5. package/lib/resolvers/mutations/accounts/removeWeb3Address.js +1 -2
  6. package/lib/resolvers/mutations/accounts/removeWeb3Address.js.map +1 -1
  7. package/lib/resolvers/mutations/accounts/removeWebAuthnCredentials.js +1 -2
  8. package/lib/resolvers/mutations/accounts/removeWebAuthnCredentials.js.map +1 -1
  9. package/lib/resolvers/mutations/accounts/resetPassword.js +29 -0
  10. package/lib/resolvers/mutations/accounts/resetPassword.js.map +1 -1
  11. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.js +1 -2
  12. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.js.map +1 -1
  13. package/lib/resolvers/mutations/accounts/verifyWeb3Address.js +1 -2
  14. package/lib/resolvers/mutations/accounts/verifyWeb3Address.js.map +1 -1
  15. package/package.json +8 -8
  16. package/src/resolvers/mutations/accounts/addWeb3Address.ts +1 -3
  17. package/src/resolvers/mutations/accounts/addWebAuthnCredentials.ts +1 -3
  18. package/src/resolvers/mutations/accounts/removeWeb3Address.ts +1 -3
  19. package/src/resolvers/mutations/accounts/removeWebAuthnCredentials.ts +1 -3
  20. package/src/resolvers/mutations/accounts/resetPassword.ts +35 -0
  21. package/src/resolvers/mutations/accounts/unlinkOAuthAccount.ts +1 -3
  22. 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
- await modules.users.updateUser({ _id: userId }, {
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,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAC5B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,KAAK,EAAE;YACL,eAAe,EAAE;gBACf,OAAO;gBACP,KAAK;aACN;SACF;KACF,EACD,EAAE,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
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
- await modules.users.updateUser({ _id: userId }, {
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,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAC5B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,KAAK,EAAE;YACL,mBAAmB,EAAE,eAAe;SACrC;KACF,EACD,EAAE,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
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
- await modules.users.updateUser({ _id: userId }, {
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,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAC5B,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;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
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
- await modules.users.updateUser({ _id: userId }, {
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,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAC5B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,KAAK,EAAE;YACL,mBAAmB,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE;SAC3C;KACF,EACD,EAAE,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
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
- await modules.users.updateUser({ _id: userId }, {
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,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAC5B,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;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
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
- await modules.users.updateUser({ _id: userId }, {
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,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAC5B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,IAAI,EAAE;YACJ,2BAA2B;YAC3B,aAAa;YACb,eAAe,EAAE,YAAY;SAC9B;KACF,EACD,EAAE,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
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.10.7",
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.10.7",
52
- "@unchainedshop/events": "^2.10.7",
53
- "@unchainedshop/logger": "^2.10.7",
54
- "@unchainedshop/roles": "^2.10.7",
55
- "@unchainedshop/utils": "^2.10.7",
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.7",
68
- "@unchainedshop/types": "^2.10.7",
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
- await modules.users.updateUser(
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
- await modules.users.updateUser(
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
- await modules.users.updateUser(
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
- await modules.users.updateUser(
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
- await modules.users.updateUser(
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
- await modules.users.updateUser(
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
  }