kybernus 2.0.10 → 2.1.1

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 (208) hide show
  1. package/node_modules/{@isaacs/balanced-match → balanced-match}/README.md +7 -10
  2. package/node_modules/{@isaacs/balanced-match → balanced-match}/package.json +5 -16
  3. package/node_modules/{@isaacs/brace-expansion → brace-expansion}/README.md +2 -5
  4. package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/index.js +1 -1
  5. package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/index.js.map +1 -1
  6. package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/index.js +1 -1
  7. package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/index.js.map +1 -1
  8. package/node_modules/{@isaacs/brace-expansion → brace-expansion}/package.json +9 -5
  9. package/node_modules/glob/dist/commonjs/glob.d.ts +8 -0
  10. package/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -1
  11. package/node_modules/glob/dist/commonjs/glob.js +2 -1
  12. package/node_modules/glob/dist/commonjs/glob.js.map +1 -1
  13. package/node_modules/glob/dist/commonjs/index.min.js +4 -0
  14. package/node_modules/glob/dist/commonjs/index.min.js.map +7 -0
  15. package/node_modules/glob/dist/commonjs/pattern.d.ts +3 -0
  16. package/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -1
  17. package/node_modules/glob/dist/commonjs/pattern.js +4 -0
  18. package/node_modules/glob/dist/commonjs/pattern.js.map +1 -1
  19. package/node_modules/glob/dist/esm/glob.d.ts +8 -0
  20. package/node_modules/glob/dist/esm/glob.d.ts.map +1 -1
  21. package/node_modules/glob/dist/esm/glob.js +2 -1
  22. package/node_modules/glob/dist/esm/glob.js.map +1 -1
  23. package/node_modules/glob/dist/esm/index.min.js +4 -0
  24. package/node_modules/glob/dist/esm/index.min.js.map +7 -0
  25. package/node_modules/glob/dist/esm/pattern.d.ts +3 -0
  26. package/node_modules/glob/dist/esm/pattern.d.ts.map +1 -1
  27. package/node_modules/glob/dist/esm/pattern.js +4 -0
  28. package/node_modules/glob/dist/esm/pattern.js.map +1 -1
  29. package/node_modules/glob/package.json +30 -10
  30. package/node_modules/lru-cache/package.json +7 -7
  31. package/node_modules/minimatch/README.md +3 -1
  32. package/node_modules/minimatch/dist/commonjs/ast.d.ts.map +1 -1
  33. package/node_modules/minimatch/dist/commonjs/ast.js +37 -27
  34. package/node_modules/minimatch/dist/commonjs/ast.js.map +1 -1
  35. package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +1 -1
  36. package/node_modules/minimatch/dist/commonjs/brace-expressions.js +2 -4
  37. package/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -1
  38. package/node_modules/minimatch/dist/commonjs/escape.js +4 -4
  39. package/node_modules/minimatch/dist/commonjs/escape.js.map +1 -1
  40. package/node_modules/minimatch/dist/commonjs/index.d.ts +50 -0
  41. package/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -1
  42. package/node_modules/minimatch/dist/commonjs/index.js +37 -31
  43. package/node_modules/minimatch/dist/commonjs/index.js.map +1 -1
  44. package/node_modules/minimatch/dist/commonjs/unescape.js +4 -4
  45. package/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -1
  46. package/node_modules/minimatch/dist/esm/ast.d.ts.map +1 -1
  47. package/node_modules/minimatch/dist/esm/ast.js +37 -27
  48. package/node_modules/minimatch/dist/esm/ast.js.map +1 -1
  49. package/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +1 -1
  50. package/node_modules/minimatch/dist/esm/brace-expressions.js +2 -4
  51. package/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -1
  52. package/node_modules/minimatch/dist/esm/escape.js +4 -4
  53. package/node_modules/minimatch/dist/esm/escape.js.map +1 -1
  54. package/node_modules/minimatch/dist/esm/index.d.ts +50 -0
  55. package/node_modules/minimatch/dist/esm/index.d.ts.map +1 -1
  56. package/node_modules/minimatch/dist/esm/index.js +37 -31
  57. package/node_modules/minimatch/dist/esm/index.js.map +1 -1
  58. package/node_modules/minimatch/dist/esm/unescape.js +4 -4
  59. package/node_modules/minimatch/dist/esm/unescape.js.map +1 -1
  60. package/node_modules/minimatch/package.json +3 -3
  61. package/node_modules/minipass/LICENSE.md +55 -0
  62. package/node_modules/minipass/dist/commonjs/index.d.ts +12 -16
  63. package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -1
  64. package/node_modules/minipass/dist/commonjs/index.js +13 -3
  65. package/node_modules/minipass/dist/commonjs/index.js.map +1 -1
  66. package/node_modules/minipass/dist/esm/index.d.ts +12 -16
  67. package/node_modules/minipass/dist/esm/index.d.ts.map +1 -1
  68. package/node_modules/minipass/dist/esm/index.js +3 -1
  69. package/node_modules/minipass/dist/esm/index.js.map +1 -1
  70. package/node_modules/minipass/package.json +9 -14
  71. package/node_modules/rimraf/README.md +29 -0
  72. package/node_modules/rimraf/dist/commonjs/fs.d.ts +9 -8
  73. package/node_modules/rimraf/dist/commonjs/fs.d.ts.map +1 -1
  74. package/node_modules/rimraf/dist/commonjs/index.d.ts.map +1 -1
  75. package/node_modules/rimraf/dist/commonjs/index.js +9 -3
  76. package/node_modules/rimraf/dist/commonjs/index.js.map +1 -1
  77. package/node_modules/rimraf/dist/commonjs/opt-arg.d.ts.map +1 -1
  78. package/node_modules/rimraf/dist/commonjs/opt-arg.js +2 -1
  79. package/node_modules/rimraf/dist/commonjs/opt-arg.js.map +1 -1
  80. package/node_modules/rimraf/dist/commonjs/path-arg.d.ts.map +1 -1
  81. package/node_modules/rimraf/dist/commonjs/path-arg.js +2 -1
  82. package/node_modules/rimraf/dist/commonjs/path-arg.js.map +1 -1
  83. package/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts +2 -2
  84. package/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts.map +1 -1
  85. package/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts.map +1 -1
  86. package/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js.map +1 -1
  87. package/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts.map +1 -1
  88. package/node_modules/rimraf/dist/commonjs/rimraf-posix.js +1 -2
  89. package/node_modules/rimraf/dist/commonjs/rimraf-posix.js.map +1 -1
  90. package/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts.map +1 -1
  91. package/node_modules/rimraf/dist/commonjs/rimraf-windows.js.map +1 -1
  92. package/node_modules/rimraf/dist/esm/bin.mjs.map +1 -1
  93. package/node_modules/rimraf/dist/esm/fs.d.ts +9 -8
  94. package/node_modules/rimraf/dist/esm/fs.d.ts.map +1 -1
  95. package/node_modules/rimraf/dist/esm/index.d.ts.map +1 -1
  96. package/node_modules/rimraf/dist/esm/index.js +10 -4
  97. package/node_modules/rimraf/dist/esm/index.js.map +1 -1
  98. package/node_modules/rimraf/dist/esm/opt-arg.d.ts.map +1 -1
  99. package/node_modules/rimraf/dist/esm/opt-arg.js +2 -1
  100. package/node_modules/rimraf/dist/esm/opt-arg.js.map +1 -1
  101. package/node_modules/rimraf/dist/esm/path-arg.d.ts.map +1 -1
  102. package/node_modules/rimraf/dist/esm/path-arg.js +2 -1
  103. package/node_modules/rimraf/dist/esm/path-arg.js.map +1 -1
  104. package/node_modules/rimraf/dist/esm/readdir-or-error.d.ts +2 -2
  105. package/node_modules/rimraf/dist/esm/readdir-or-error.d.ts.map +1 -1
  106. package/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts.map +1 -1
  107. package/node_modules/rimraf/dist/esm/rimraf-move-remove.js +1 -1
  108. package/node_modules/rimraf/dist/esm/rimraf-move-remove.js.map +1 -1
  109. package/node_modules/rimraf/dist/esm/rimraf-posix.d.ts.map +1 -1
  110. package/node_modules/rimraf/dist/esm/rimraf-posix.js +1 -2
  111. package/node_modules/rimraf/dist/esm/rimraf-posix.js.map +1 -1
  112. package/node_modules/rimraf/dist/esm/rimraf-windows.d.ts.map +1 -1
  113. package/node_modules/rimraf/dist/esm/rimraf-windows.js +1 -1
  114. package/node_modules/rimraf/dist/esm/rimraf-windows.js.map +1 -1
  115. package/node_modules/rimraf/package.json +4 -19
  116. package/package.json +1 -1
  117. package/templates/java-spring/clean/src/main/java/{{packagePath}}/infrastructure/persistence/PostgresUserRepository.java.hbs +40 -0
  118. package/templates/java-spring/clean/src/main/resources/application.properties.hbs +18 -0
  119. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/{infrastructure/web/controller → adapters/inbound/web}/AuthController.java.hbs +4 -5
  120. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/adapters/outbound/persistence/JpaUserAdapter.java.hbs +40 -0
  121. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/adapters/outbound/persistence/entity/UserEntity.java.hbs +61 -0
  122. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/adapters/outbound/persistence/repository/JpaUserRepository.java.hbs +11 -0
  123. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/{infrastructure/security/SecurityAdapters.java.hbs → adapters/outbound/security/SecurityAdapter.java.hbs} +14 -14
  124. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/{domain/entity → core/domain}/User.java.hbs +2 -2
  125. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/{domain/usecase → core/ports/inbound}/LoginUserUseCase.java.hbs +8 -8
  126. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/{domain/usecase → core/ports/inbound}/RegisterUserUseCase.java.hbs +7 -8
  127. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/{domain/repository → core/ports/outbound}/UserRepository.java.hbs +4 -4
  128. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/{application → core}/service/AuthService.java.hbs +9 -9
  129. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/{{projectNamePascalCase}}Application.java.hbs +2 -2
  130. package/templates/java-spring/hexagonal/src/main/resources/application.properties.hbs +18 -0
  131. package/templates/nestjs/clean/package.json.hbs +9 -3
  132. package/templates/nestjs/clean/prisma/schema.prisma.hbs +20 -0
  133. package/templates/nestjs/clean/src/app.module.ts.hbs +17 -0
  134. package/templates/nestjs/clean/src/auth.module.ts.hbs +12 -10
  135. package/templates/nestjs/clean/src/infrastructure/database/prisma.service.ts.hbs +13 -0
  136. package/templates/nestjs/clean/src/infrastructure/database/repositories/prisma.user.repository.ts.hbs +32 -0
  137. package/templates/nestjs/clean/src/main.ts.hbs +11 -0
  138. package/templates/nestjs/hexagonal/package.json.hbs +9 -3
  139. package/templates/nestjs/hexagonal/prisma/schema.prisma +20 -0
  140. package/templates/nestjs/hexagonal/src/adapters/outbound/persistence/prisma.service.ts.hbs +13 -0
  141. package/templates/nestjs/hexagonal/src/adapters/outbound/persistence/prisma.user.adapter.ts.hbs +32 -0
  142. package/templates/nestjs/hexagonal/src/app.module.ts.hbs +17 -0
  143. package/templates/nestjs/hexagonal/src/auth.module.ts.hbs +15 -13
  144. package/templates/nestjs/hexagonal/src/main.ts.hbs +11 -0
  145. package/templates/nextjs/mvc/package.json.hbs +35 -32
  146. package/templates/nextjs/mvc/prisma/schema.prisma.hbs +12 -9
  147. package/templates/nextjs/mvc/src/lib/db.ts +15 -0
  148. package/templates/nodejs-express/clean/docker-compose.yml.hbs +5 -6
  149. package/templates/nodejs-express/clean/package.json.hbs +14 -8
  150. package/templates/nodejs-express/clean/prisma/schema.prisma +20 -0
  151. package/templates/nodejs-express/clean/src/config/index.ts +27 -0
  152. package/templates/nodejs-express/clean/src/index.ts.hbs +20 -24
  153. package/templates/nodejs-express/clean/src/infrastructure/database/PrismaUserRepository.ts.hbs +61 -0
  154. package/templates/nodejs-express/clean/src/infrastructure/database/prisma.ts.hbs +5 -0
  155. package/templates/nodejs-express/clean/src/infrastructure/http/controllers/AuthController.ts.hbs +24 -40
  156. package/templates/nodejs-express/clean/src/infrastructure/http/middlewares/errorHandler.ts +24 -0
  157. package/templates/nodejs-express/clean/tsconfig.json.hbs +8 -17
  158. package/templates/nodejs-express/hexagonal/docker-compose.yml.hbs +5 -6
  159. package/templates/nodejs-express/hexagonal/package.json.hbs +14 -8
  160. package/templates/nodejs-express/hexagonal/prisma/schema.prisma +20 -0
  161. package/templates/nodejs-express/hexagonal/src/adapters/inbound/http/AuthController.ts.hbs +29 -44
  162. package/templates/nodejs-express/hexagonal/src/adapters/inbound/http/middlewares/errorHandler.ts +24 -0
  163. package/templates/nodejs-express/hexagonal/src/adapters/outbound/persistence/PrismaUserAdapter.ts.hbs +61 -0
  164. package/templates/nodejs-express/hexagonal/src/adapters/outbound/persistence/prisma.ts +5 -0
  165. package/templates/nodejs-express/hexagonal/src/config/index.ts +27 -0
  166. package/templates/nodejs-express/hexagonal/src/index.ts.hbs +24 -27
  167. package/templates/nodejs-express/hexagonal/tsconfig.json.hbs +8 -17
  168. package/templates/python-fastapi/clean/app/application/services/__init__.py +0 -0
  169. package/templates/python-fastapi/clean/app/application/services/user_service.py.hbs +20 -0
  170. package/templates/python-fastapi/clean/app/config.py.hbs +24 -0
  171. package/templates/python-fastapi/clean/app/infrastructure/database/models.py.hbs +24 -0
  172. package/templates/python-fastapi/clean/app/infrastructure/database/postgres_repository.py.hbs +62 -0
  173. package/templates/python-fastapi/clean/app/infrastructure/database/session.py.hbs +27 -0
  174. package/templates/python-fastapi/clean/app/infrastructure/http/auth_controller.py.hbs +14 -8
  175. package/templates/python-fastapi/clean/app/main.py.hbs +25 -3
  176. package/templates/python-fastapi/clean/requirements.txt.hbs +3 -1
  177. package/templates/python-fastapi/hexagonal/app/adapters/inbound/http_adapter.py.hbs +41 -17
  178. package/templates/python-fastapi/hexagonal/app/adapters/outbound/postgres_user_repository.py.hbs +50 -0
  179. package/templates/python-fastapi/hexagonal/app/config.py.hbs +20 -0
  180. package/templates/python-fastapi/hexagonal/app/infrastructure/database/models.py.hbs +24 -0
  181. package/templates/python-fastapi/hexagonal/app/infrastructure/database/session.py.hbs +20 -0
  182. package/templates/python-fastapi/hexagonal/app/main.py.hbs +22 -14
  183. package/templates/python-fastapi/hexagonal/requirements.txt.hbs +3 -1
  184. package/node_modules/minipass/LICENSE +0 -15
  185. package/templates/java-spring/clean/src/main/java/{{packagePath}}/infrastructure/persistence/InMemoryUserRepository.java.hbs +0 -41
  186. package/templates/java-spring/hexagonal/src/main/java/{{packagePath}}/infrastructure/persistence/InMemoryUserRepository.java.hbs +0 -41
  187. package/templates/nestjs/clean/src/infrastructure/database/in-memory.repository.ts.hbs +0 -17
  188. package/templates/nodejs-express/clean/src/infrastructure/database/InMemoryUserRepository.ts.hbs +0 -46
  189. package/templates/nodejs-express/hexagonal/src/adapters/outbound/persistence/InMemoryUserAdapter.ts.hbs +0 -38
  190. /package/node_modules/{@isaacs/balanced-match → balanced-match}/LICENSE.md +0 -0
  191. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/index.d.ts +0 -0
  192. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/index.d.ts.map +0 -0
  193. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/index.js +0 -0
  194. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/index.js.map +0 -0
  195. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/commonjs/package.json +0 -0
  196. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/index.d.ts +0 -0
  197. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/index.d.ts.map +0 -0
  198. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/index.js +0 -0
  199. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/index.js.map +0 -0
  200. /package/node_modules/{@isaacs/balanced-match → balanced-match}/dist/esm/package.json +0 -0
  201. /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/LICENSE +0 -0
  202. /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/index.d.ts +0 -0
  203. /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/index.d.ts.map +0 -0
  204. /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/commonjs/package.json +0 -0
  205. /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/index.d.ts +0 -0
  206. /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/index.d.ts.map +0 -0
  207. /package/node_modules/{@isaacs/brace-expansion → brace-expansion}/dist/esm/package.json +0 -0
  208. /package/templates/python-fastapi/hexagonal/app/core/{ports.py.hbs → ports/ports.py.hbs} +0 -0
@@ -1,41 +0,0 @@
1
- package {{packageName}}.infrastructure.persistence;
2
-
3
- import {{packageName}}.domain.entity.User;
4
- import {{packageName}}.domain.repository.UserRepository;
5
- import org.springframework.stereotype.Repository;
6
-
7
- import java.util.Map;
8
- import java.util.Optional;
9
- import java.util.concurrent.ConcurrentHashMap;
10
-
11
- /**
12
- * In-Memory User Repository - Infrastructure Layer
13
- * Replace with JPA implementation for production
14
- */
15
- @Repository
16
- public class InMemoryUserRepository implements UserRepository {
17
- private final Map<String, User> users = new ConcurrentHashMap<>();
18
-
19
- @Override
20
- public Optional<User> findById(String id) {
21
- return Optional.ofNullable(users.get(id));
22
- }
23
-
24
- @Override
25
- public Optional<User> findByEmail(String email) {
26
- return users.values().stream()
27
- .filter(user -> user.getEmail().equals(email))
28
- .findFirst();
29
- }
30
-
31
- @Override
32
- public User save(User user) {
33
- users.put(user.getId(), user);
34
- return user;
35
- }
36
-
37
- @Override
38
- public void delete(String id) {
39
- users.remove(id);
40
- }
41
- }
@@ -1,41 +0,0 @@
1
- package {{packageName}}.infrastructure.persistence;
2
-
3
- import {{packageName}}.domain.entity.User;
4
- import {{packageName}}.domain.repository.UserRepository;
5
- import org.springframework.stereotype.Repository;
6
-
7
- import java.util.Map;
8
- import java.util.Optional;
9
- import java.util.concurrent.ConcurrentHashMap;
10
-
11
- /**
12
- * In-Memory User Repository - Infrastructure Layer
13
- * Replace with JPA implementation for production
14
- */
15
- @Repository
16
- public class InMemoryUserRepository implements UserRepository {
17
- private final Map<String, User> users = new ConcurrentHashMap<>();
18
-
19
- @Override
20
- public Optional<User> findById(String id) {
21
- return Optional.ofNullable(users.get(id));
22
- }
23
-
24
- @Override
25
- public Optional<User> findByEmail(String email) {
26
- return users.values().stream()
27
- .filter(user -> user.getEmail().equals(email))
28
- .findFirst();
29
- }
30
-
31
- @Override
32
- public User save(User user) {
33
- users.put(user.getId(), user);
34
- return user;
35
- }
36
-
37
- @Override
38
- public void delete(String id) {
39
- users.remove(id);
40
- }
41
- }
@@ -1,17 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { IUserRepository } from '../../domain/repositories/user.repository';
3
- import { User } from '../../domain/entities/user.entity';
4
-
5
- @Injectable()
6
- export class InMemoryUserRepository extends IUserRepository {
7
- private users: User[] = [];
8
-
9
- async findByEmail(email: string): Promise<User | null> {
10
- return this.users.find((u) => u.email === email) || null;
11
- }
12
-
13
- async save(user: User): Promise<User> {
14
- this.users.push(user);
15
- return user;
16
- }
17
- }
@@ -1,46 +0,0 @@
1
- import { User } from '../../domain/entities/User';
2
- import { IUserRepository } from '../../domain/repositories/IUserRepository';
3
-
4
- /**
5
- * In-Memory User Repository - Infrastructure Layer
6
- * Replace with actual database implementation (Prisma, TypeORM, etc.)
7
- */
8
- export class InMemoryUserRepository implements IUserRepository {
9
- private users: Map<string, User> = new Map();
10
-
11
- async findById(id: string): Promise<User | null> {
12
- return this.users.get(id) || null;
13
- }
14
-
15
- async findByEmail(email: string): Promise<User | null> {
16
- for (const user of this.users.values()) {
17
- if (user.email === email) {
18
- return user;
19
- }
20
- }
21
- return null;
22
- }
23
-
24
- async save(user: User): Promise<User> {
25
- const id = Date.now().toString();
26
- const savedUser = User.restore({
27
- id,
28
- email: user.email,
29
- name: user.name,
30
- password: user.password,
31
- stripeCustomerId: user.stripeCustomerId,
32
- });
33
- this.users.set(id, savedUser);
34
- return savedUser;
35
- }
36
-
37
- async update(user: User): Promise<User> {
38
- if (!user.id) throw new Error('User must have an ID to update');
39
- this.users.set(user.id, user);
40
- return user;
41
- }
42
-
43
- async delete(id: string): Promise<void> {
44
- this.users.delete(id);
45
- }
46
- }
@@ -1,38 +0,0 @@
1
- import { User } from '../../core/domain/entities/User';
2
- import { IUserRepositoryPort } from '../../core/ports/outbound/IUserRepositoryPort';
3
-
4
- /**
5
- * In-Memory User Repository Adapter
6
- * Implements the outbound port
7
- */
8
- export class InMemoryUserAdapter implements IUserRepositoryPort {
9
- private users: Map<string, User> = new Map();
10
-
11
- async findById(id: string): Promise<User | null> {
12
- return this.users.get(id) || null;
13
- }
14
-
15
- async findByEmail(email: string): Promise<User | null> {
16
- for (const user of this.users.values()) {
17
- if (user.email === email) return user;
18
- }
19
- return null;
20
- }
21
-
22
- async save(user: User): Promise<User> {
23
- const id = Date.now().toString();
24
- const savedUser = user.withId(id);
25
- this.users.set(id, savedUser);
26
- return savedUser;
27
- }
28
-
29
- async update(user: User): Promise<User> {
30
- if (!user.id) throw new Error('User must have an ID');
31
- this.users.set(user.id, user);
32
- return user;
33
- }
34
-
35
- async delete(id: string): Promise<void> {
36
- this.users.delete(id);
37
- }
38
- }