@volontariapp/domain-user 2.4.3-snap-493ba46 → 2.4.3-snap-0450917

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.
@@ -21,5 +21,6 @@ export declare class PostgresUserRepository extends BaseRepository<UserModel, Us
21
21
  createWithHashedPassword(user: Partial<UserEntity>, password: string): Promise<UserEntity>;
22
22
  findPasswordHashByEmail(email: string): Promise<string | null>;
23
23
  findPasswordHashById(id: string): Promise<string | null>;
24
+ update(id: string, data: Partial<UserEntity>): Promise<UserEntity | null>;
24
25
  }
25
26
  //# sourceMappingURL=postgres-user.repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-user.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/postgres-user.repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,qBACa,sBACX,SAAQ,cAAc,CAAC,SAAS,EAAE,UAAU,CAC5C,YAAW,eAAe;IAIS,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADhC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EACZ,WAAW,EAAE,MAAM;IAKvD,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU;cAMnC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;IAQ/E,OAAO,CAAC,YAAY;IAIL,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIlE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAItD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIlD,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IAQzE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ1F,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ9D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAO/D"}
1
+ {"version":3,"file":"postgres-user.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/postgres-user.repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,qBACa,sBACX,SAAQ,cAAc,CAAC,SAAS,EAAE,UAAU,CAC5C,YAAW,eAAe;IAIS,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADhC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EACZ,WAAW,EAAE,MAAM;IAKvD,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU;cAMnC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;IAQ/E,OAAO,CAAC,YAAY;IAIL,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIlE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAItD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIlD,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IAQzE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ1F,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ9D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAahG"}
@@ -93,6 +93,16 @@ let PostgresUserRepository = class PostgresUserRepository extends BaseRepository
93
93
  });
94
94
  return user ? user.passwordHash : null;
95
95
  }
96
+ async update(id, data) {
97
+ const { passwordHash, ...otherData } = data;
98
+ const entity = await super.update(id, otherData);
99
+ if (passwordHash != null && entity) {
100
+ await this.repository.update(this.buildIdWhere(id), {
101
+ passwordHash,
102
+ });
103
+ }
104
+ return entity;
105
+ }
96
106
  };
97
107
  PostgresUserRepository = __decorate([
98
108
  Injectable(),
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-user.repository.js","sourceRoot":"","sources":["../../src/repositories/postgres-user.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-user.repository.js","sourceRoot":"","sources":["../../src/repositories/postgres-user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAErE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAG1D,IAAM,sBAAsB,GAA5B,MAAM,sBACX,SAAQ,cAAqC;IAKO;IAFpD,YAC+B,UAAiC,EACZ,WAAmB;QAErE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAFS,gBAAW,GAAX,WAAW,CAAQ;IAGvE,CAAC;IAEe,QAAQ,CAAC,KAAgB;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEkB,OAAO,CAAC,MAA2B;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACxB,KAA4B,CAAC,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,OAAO,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,EAAmB;QACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAc,EAAE,MAAe;QAC3C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YACzD,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,OAAe;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC9E,MAAM,aAAa,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACpB,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,OAAe;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC9E,MAAM,aAAa,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACpB,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,KAAa;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAAyB,EAAE,QAAgB;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,KAAa;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACzC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC1C,MAAM,EAAE,CAAC,cAAc,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EAAU;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACzC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,cAAc,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAyB;QAChE,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAEjD,IAAI,YAAY,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;gBAClD,YAAY;aACwB,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA3GY,sBAAsB;IADlC,UAAU,EAAE;IAMR,WAAA,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC3B,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;;GANvB,sBAAsB,CA2GlC"}
@@ -0,0 +1,2 @@
1
+ import 'reflect-metadata';
2
+ //# sourceMappingURL=user-service.int.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-service.int.spec.d.ts","sourceRoot":"","sources":["../../../src/test/integration/user-service.int.spec.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,78 @@
1
+ import 'reflect-metadata';
2
+ import { describe, it, expect, beforeAll, afterAll, beforeEach } from '@jest/globals';
3
+ import { initializeTestDb, closeTestDb, truncateAll, getTestRepository } from '../data-source.js';
4
+ import { UserModel } from '../../models/user.model.js';
5
+ import { BadgeModel } from '../../models/badge.model.js';
6
+ import { PostgresUserRepository } from '../../repositories/postgres-user.repository.js';
7
+ import { PostgresBadgeRepository } from '../../repositories/postgres-badge.repository.js';
8
+ import { UserService } from '../../services/user.service.js';
9
+ import { BadgeService } from '../../services/badge.service.js';
10
+ import { UserFactory } from '../__test-utils__/factories/user.factory.js';
11
+ import { hashPassword, verifyPassword } from '@volontariapp/crypto';
12
+ import { UserId } from '../../value-objects/user.vo.js';
13
+ import { UpdateUserInput } from '../../value-objects/user.vo.js';
14
+ import { WRONG_PASSWORD } from '@volontariapp/errors-nest';
15
+ describe('UserService (Integration)', () => {
16
+ let userService;
17
+ let userRepository;
18
+ beforeAll(async () => {
19
+ await initializeTestDb();
20
+ userRepository = new PostgresUserRepository(getTestRepository(UserModel), 'test-email-encryption-secret-32ch');
21
+ const badgeRepository = new PostgresBadgeRepository(getTestRepository(BadgeModel));
22
+ const badgeService = new BadgeService(badgeRepository);
23
+ userService = new UserService(userRepository, badgeService);
24
+ });
25
+ afterAll(async () => {
26
+ await closeTestDb();
27
+ });
28
+ beforeEach(async () => {
29
+ await truncateAll();
30
+ });
31
+ describe('update() with password change', () => {
32
+ it('should update password when previous password is correct', async () => {
33
+ const initialPassword = 'OldPassword123!';
34
+ const newPassword = 'NewPassword456!';
35
+ const input = UserFactory.buildInput({ email: 'test@example.com' });
36
+ const user = await userRepository.createWithHashedPassword(input, hashPassword(initialPassword));
37
+ const userId = new UserId(user.id);
38
+ const updateInput = new UpdateUserInput({
39
+ previousPassword: initialPassword,
40
+ newPassword: newPassword,
41
+ });
42
+ await userService.update(userId, updateInput);
43
+ const storedHash = await userRepository.findPasswordHashById(user.id);
44
+ if (storedHash === null)
45
+ throw new Error('Password hash not found');
46
+ expect(verifyPassword(newPassword, storedHash)).toBe(true);
47
+ expect(verifyPassword(initialPassword, storedHash)).toBe(false);
48
+ });
49
+ it('should throw WRONG_PASSWORD when previous password is incorrect', async () => {
50
+ const initialPassword = 'CorrectPassword123!';
51
+ const input = UserFactory.buildInput({ email: 'test2@example.com' });
52
+ const user = await userRepository.createWithHashedPassword(input, hashPassword(initialPassword));
53
+ const userId = new UserId(user.id);
54
+ const updateInput = new UpdateUserInput({
55
+ previousPassword: 'WrongPassword!',
56
+ newPassword: 'SomeNewPassword123!',
57
+ });
58
+ await expect(userService.update(userId, updateInput)).rejects.toThrow(WRONG_PASSWORD().message);
59
+ });
60
+ it('should not update password if newPassword is not provided', async () => {
61
+ const initialPassword = 'StayTheSame123!';
62
+ const input = UserFactory.buildInput({ email: 'test3@example.com', pseudo: 'InitialPseudo' });
63
+ const user = await userRepository.createWithHashedPassword(input, hashPassword(initialPassword));
64
+ const userId = new UserId(user.id);
65
+ const updateInput = new UpdateUserInput({
66
+ pseudo: 'NewPseudo',
67
+ });
68
+ await userService.update(userId, updateInput);
69
+ const storedHash = await userRepository.findPasswordHashById(user.id);
70
+ if (storedHash === null)
71
+ throw new Error('Password hash not found');
72
+ expect(verifyPassword(initialPassword, storedHash)).toBe(true);
73
+ const updatedUser = await userService.findById(userId);
74
+ expect(updatedUser.pseudo).toBe('NewPseudo');
75
+ });
76
+ });
77
+ });
78
+ //# sourceMappingURL=user-service.int.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-service.int.spec.js","sourceRoot":"","sources":["../../../src/test/integration/user-service.int.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volontariapp/domain-user",
3
- "version": "2.4.3-snap-493ba46",
3
+ "version": "2.4.3-snap-0450917",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -39,12 +39,12 @@
39
39
  "migration:run": "TYPEORM_MIGRATION_RUN=true yarn typeorm migration:run -d src/test/data-source.ts"
40
40
  },
41
41
  "dependencies": {
42
- "@volontariapp/auth": "3.0.2-snap-493ba46",
42
+ "@volontariapp/auth": "3.0.2-snap-0450917",
43
43
  "@volontariapp/contracts": "4.0.7",
44
44
  "@volontariapp/crypto": "0.3.6",
45
45
  "@volontariapp/database": "1.12.0",
46
46
  "@volontariapp/errors": "0.5.0",
47
- "@volontariapp/errors-nest": "0.10.2-snap-493ba46",
47
+ "@volontariapp/errors-nest": "0.10.2-snap-0450917",
48
48
  "@volontariapp/logger": "0.2.3",
49
49
  "@volontariapp/shared": "0.2.0"
50
50
  },