@jmlq/auth 0.0.1-alpha.1 → 0.0.1-alpha.2

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 (361) hide show
  1. package/README.md +259 -306
  2. package/dist/application/dtos/index.d.ts +3 -0
  3. package/dist/application/dtos/index.js +19 -0
  4. package/dist/application/dtos/request/index.d.ts +4 -0
  5. package/dist/{src/application/dtos → application/dtos/request}/index.js +4 -4
  6. package/dist/{src/application/dtos/login.dto.d.ts → application/dtos/request/login.request.d.ts} +0 -4
  7. package/dist/application/dtos/request/logout.request.d.ts +3 -0
  8. package/dist/application/dtos/request/refresh-token.request.d.ts +3 -0
  9. package/dist/application/dtos/request/register-user.request.d.ts +6 -0
  10. package/dist/application/dtos/response/index.d.ts +4 -0
  11. package/dist/application/dtos/response/index.js +20 -0
  12. package/dist/application/dtos/response/login.response.d.ts +4 -0
  13. package/dist/{src/application/dtos/logout.dto.d.ts → application/dtos/response/logout.response.d.ts} +0 -3
  14. package/dist/{src/application/dtos/refresh-token.dto.d.ts → application/dtos/response/refresh-token.response.d.ts} +0 -3
  15. package/dist/application/dtos/response/register-user.response.d.ts +7 -0
  16. package/dist/application/dtos/type/index.d.ts +1 -0
  17. package/dist/{src/shared/constants → application/dtos/type}/index.js +1 -1
  18. package/dist/application/dtos/type/user-role.type.d.ts +4 -0
  19. package/dist/application/factories/auth-service.factory.d.ts +11 -0
  20. package/dist/application/factories/auth-service.factory.js +40 -0
  21. package/dist/{src/application → application}/index.d.ts +1 -0
  22. package/dist/{src/application → application}/index.js +1 -0
  23. package/dist/application/types/auth-service-factory-options.type.d.ts +5 -0
  24. package/dist/application/types/index.d.ts +1 -0
  25. package/dist/{src/infrastructure/jwt/factory → application/types}/index.js +1 -1
  26. package/dist/{src/application → application}/use-cases/login-with-password.use-case.d.ts +2 -2
  27. package/dist/{src/application → application}/use-cases/login-with-password.use-case.js +6 -5
  28. package/dist/{src/application → application}/use-cases/logout.use-case.d.ts +2 -2
  29. package/dist/{src/application → application}/use-cases/logout.use-case.js +2 -2
  30. package/dist/{src/application → application}/use-cases/refresh-token.use-case.d.ts +2 -2
  31. package/dist/{src/application → application}/use-cases/refresh-token.use-case.js +2 -2
  32. package/dist/application/use-cases/register-user.use-case.d.ts +12 -0
  33. package/dist/{src/application → application}/use-cases/register-user.use-case.js +27 -1
  34. package/dist/{src/domain → domain}/errors/auth.errors.d.ts +1 -14
  35. package/dist/{src/domain → domain}/errors/auth.errors.js +1 -15
  36. package/dist/{src/domain → domain}/index.d.ts +0 -1
  37. package/dist/{src/domain → domain}/index.js +0 -1
  38. package/dist/domain/ports/auth/index.d.ts +2 -0
  39. package/dist/domain/ports/auth/index.js +18 -0
  40. package/dist/{src/domain/ports/auth/password-hasher.d.ts → domain/ports/auth/password-hasher.port.d.ts} +1 -1
  41. package/dist/{src/domain → domain}/ports/auth/password-policy.port.d.ts +1 -1
  42. package/dist/domain/ports/index.d.ts +4 -0
  43. package/dist/{src/infrastructure/jwt → domain/ports}/index.js +3 -2
  44. package/dist/domain/ports/jwt/index.d.ts +1 -0
  45. package/dist/{src/shared/types → domain/ports/jwt}/index.js +1 -1
  46. package/dist/domain/ports/jwt/payload/index.d.ts +1 -0
  47. package/dist/domain/ports/jwt/payload/index.js +17 -0
  48. package/dist/{src/domain → domain}/ports/repository/credential.repository.d.ts +1 -1
  49. package/dist/{src/domain → domain}/ports/repository/index.d.ts +1 -1
  50. package/dist/{src/domain → domain}/ports/repository/index.js +1 -1
  51. package/dist/{src/domain/ports/repository/user.repository.d.ts → domain/ports/repository/user-repository.port.d.ts} +1 -1
  52. package/dist/domain/ports/token/index.d.ts +2 -0
  53. package/dist/domain/ports/token/index.js +18 -0
  54. package/dist/{src/domain → domain}/ports/token/token-session.port.d.ts +2 -2
  55. package/dist/{src/domain → domain}/ports/token/token.service.port.d.ts +2 -2
  56. package/dist/{src/domain → domain}/props/jwt/generate-access-token.props.d.ts +0 -2
  57. package/dist/{src/domain → domain}/props/jwt/generate-refresh-token.props.d.ts +0 -2
  58. package/dist/{src/domain/props/services → domain/props/jwt}/index.d.ts +1 -0
  59. package/dist/{src/domain/props/services → domain/props/jwt}/index.js +1 -0
  60. package/dist/{src/domain → domain}/services/password-policy.service.d.ts +2 -2
  61. package/dist/{src/infrastructure/repositories/test → in-memory}/in-memory-credential.repository.d.ts +2 -2
  62. package/dist/{src/infrastructure/repositories/test → in-memory}/in-memory-credential.repository.js +12 -2
  63. package/dist/{src/infrastructure/repositories/test → in-memory}/in-memory-user.repository.d.ts +2 -2
  64. package/dist/index.d.ts +4 -1
  65. package/dist/index.js +11 -1
  66. package/dist/infrastructure/index.js +1 -0
  67. package/dist/{src/infrastructure → infrastructure}/security/bcrypt-password-hasher.d.ts +7 -2
  68. package/dist/{src/infrastructure → infrastructure}/security/bcrypt-password-hasher.js +7 -2
  69. package/dist/{src/infrastructure → infrastructure}/services/index.d.ts +0 -1
  70. package/dist/{src/infrastructure → infrastructure}/services/index.js +0 -1
  71. package/dist/infrastructure/services/token-session.service.d.ts +22 -0
  72. package/dist/{src/infrastructure/services/default-token-session.service.js → infrastructure/services/token-session.service.js} +30 -31
  73. package/dist/infrastructure/types/auth-service-container.d.ts +14 -0
  74. package/dist/shared/index.d.ts +1 -0
  75. package/dist/{src/infrastructure/repositories → shared}/index.js +1 -1
  76. package/package.json +5 -8
  77. package/dist/examples/bcrypt-password-hasher.example.d.ts +0 -3
  78. package/dist/examples/bcrypt-password-hasher.example.js +0 -78
  79. package/dist/examples/entity-object.example.d.ts +0 -39
  80. package/dist/examples/entity-object.example.js +0 -411
  81. package/dist/examples/factory-auth-service-example.d.ts +0 -3
  82. package/dist/examples/factory-auth-service-example.js +0 -84
  83. package/dist/examples/index.example.d.ts +0 -12
  84. package/dist/examples/index.example.js +0 -171
  85. package/dist/examples/jwt-algoritm.example.d.ts +0 -47
  86. package/dist/examples/jwt-algoritm.example.js +0 -447
  87. package/dist/examples/jwt-token-generator.example.d.ts +0 -6
  88. package/dist/examples/jwt-token-generator.example.js +0 -49
  89. package/dist/examples/jwt-verifier.example.d.ts +0 -3
  90. package/dist/examples/jwt-verifier.example.js +0 -80
  91. package/dist/examples/password-policy.example.d.ts +0 -7
  92. package/dist/examples/password-policy.example.js +0 -57
  93. package/dist/examples/service-jwt-token.example.d.ts +0 -3
  94. package/dist/examples/service-jwt-token.example.js +0 -154
  95. package/dist/examples/service-token-session.example.d.ts +0 -3
  96. package/dist/examples/service-token-session.example.js +0 -139
  97. package/dist/examples/use-case-login-with-password.example.d.ts +0 -6
  98. package/dist/examples/use-case-login-with-password.example.js +0 -105
  99. package/dist/examples/use-case-logout.example.d.ts +0 -7
  100. package/dist/examples/use-case-logout.example.js +0 -134
  101. package/dist/examples/use-case-refresh-token.example.d.ts +0 -11
  102. package/dist/examples/use-case-refresh-token.example.js +0 -164
  103. package/dist/examples/use-case-register-user.example.d.ts +0 -9
  104. package/dist/examples/use-case-register-user.example.js +0 -110
  105. package/dist/src/application/dtos/index.d.ts +0 -4
  106. package/dist/src/application/dtos/register-user.dto.d.ts +0 -16
  107. package/dist/src/application/factories/auth-service.factory.d.ts +0 -5
  108. package/dist/src/application/factories/auth-service.factory.js +0 -51
  109. package/dist/src/application/use-cases/register-user.use-case.d.ts +0 -10
  110. package/dist/src/domain/errors/auth-domain-error.d.ts +0 -82
  111. package/dist/src/domain/errors/auth-domain-error.js +0 -112
  112. package/dist/src/domain/ports/auth/password-policy-config.port.js +0 -10
  113. package/dist/src/domain/ports/config/auth-config.port.d.ts +0 -19
  114. package/dist/src/domain/ports/config/auth-config.port.js +0 -3
  115. package/dist/src/domain/ports/index.d.ts +0 -9
  116. package/dist/src/domain/ports/index.js +0 -25
  117. package/dist/src/domain/ports/jwt/factory/signature-strategy-factory.port.d.ts +0 -14
  118. package/dist/src/domain/ports/jwt/signature-strategy-factory.port.d.ts +0 -14
  119. package/dist/src/domain/ports/jwt/signature-strategy.d.ts +0 -30
  120. package/dist/src/domain/ports/jwt/signature-strategy.js +0 -4
  121. package/dist/src/domain/ports/jwt/signature-strategy.port.d.ts +0 -31
  122. package/dist/src/domain/ports/jwt/signature-strategy.port.js +0 -4
  123. package/dist/src/domain/ports/jwt/strategy/signature-strategy.port.d.ts +0 -31
  124. package/dist/src/domain/ports/jwt/strategy/signature-strategy.port.js +0 -4
  125. package/dist/src/domain/props/create-payload-props.port.d.ts +0 -0
  126. package/dist/src/domain/props/create-payload-props.port.js +0 -8
  127. package/dist/src/domain/props/jwt/create-payload.props.d.ts +0 -9
  128. package/dist/src/domain/props/jwt/generate-token.props.d.ts +0 -10
  129. package/dist/src/domain/props/jwt/generate-token.props.js +0 -2
  130. package/dist/src/domain/props/jwt/index.d.ts +0 -5
  131. package/dist/src/domain/props/jwt/index.js +0 -21
  132. package/dist/src/domain/props/jwt/jwt-subject.d.ts +0 -7
  133. package/dist/src/domain/props/jwt/jwt-subject.js +0 -2
  134. package/dist/src/domain/props/services/generate-access-token.props.d.ts +0 -8
  135. package/dist/src/domain/props/services/generate-refresh-token.props.d.ts +0 -8
  136. package/dist/src/domain/services/token.service.port.d.ts +0 -9
  137. package/dist/src/index.d.ts +0 -78
  138. package/dist/src/index.js +0 -94
  139. package/dist/src/infrastructure/index.d.ts +0 -5
  140. package/dist/src/infrastructure/index.js +0 -21
  141. package/dist/src/infrastructure/jwt/factory/index.d.ts +0 -1
  142. package/dist/src/infrastructure/jwt/factory/signature-strategy.factory.d.ts +0 -21
  143. package/dist/src/infrastructure/jwt/factory/signature-strategy.factory.js +0 -61
  144. package/dist/src/infrastructure/jwt/index.d.ts +0 -3
  145. package/dist/src/infrastructure/jwt/signature-strategy.factory.d.ts +0 -21
  146. package/dist/src/infrastructure/jwt/signature-strategy.factory.js +0 -61
  147. package/dist/src/infrastructure/jwt/strategies/ecdsa-signature-strategy.d.ts +0 -47
  148. package/dist/src/infrastructure/jwt/strategies/ecdsa-signature-strategy.js +0 -124
  149. package/dist/src/infrastructure/jwt/strategies/ecdsa-signature.strategy.d.ts +0 -47
  150. package/dist/src/infrastructure/jwt/strategies/ecdsa-signature.strategy.js +0 -124
  151. package/dist/src/infrastructure/jwt/strategies/hmac-signature-strategy.d.ts +0 -54
  152. package/dist/src/infrastructure/jwt/strategies/hmac-signature-strategy.js +0 -129
  153. package/dist/src/infrastructure/jwt/strategies/hmac-signature.strategy.d.ts +0 -54
  154. package/dist/src/infrastructure/jwt/strategies/hmac-signature.strategy.js +0 -129
  155. package/dist/src/infrastructure/jwt/strategies/index.d.ts +0 -3
  156. package/dist/src/infrastructure/jwt/strategies/index.js +0 -19
  157. package/dist/src/infrastructure/jwt/strategies/rsa-signature-strategy.d.ts +0 -47
  158. package/dist/src/infrastructure/jwt/strategies/rsa-signature-strategy.js +0 -124
  159. package/dist/src/infrastructure/jwt/strategies/rsa-signature.strategy.d.ts +0 -47
  160. package/dist/src/infrastructure/jwt/strategies/rsa-signature.strategy.js +0 -124
  161. package/dist/src/infrastructure/jwt/token/actions/jwt-token-generator.d.ts +0 -57
  162. package/dist/src/infrastructure/jwt/token/actions/jwt-token-generator.js +0 -123
  163. package/dist/src/infrastructure/jwt/token/actions/jwt-token-verifier.d.ts +0 -59
  164. package/dist/src/infrastructure/jwt/token/actions/jwt-token-verifier.js +0 -100
  165. package/dist/src/infrastructure/jwt/token/index.d.ts +0 -5
  166. package/dist/src/infrastructure/jwt/token/index.js +0 -21
  167. package/dist/src/infrastructure/jwt/token/jwt-signer.d.ts +0 -33
  168. package/dist/src/infrastructure/jwt/token/jwt-signer.js +0 -46
  169. package/dist/src/infrastructure/jwt/token/jwt-token-parser.d.ts +0 -29
  170. package/dist/src/infrastructure/jwt/token/jwt-token-parser.js +0 -57
  171. package/dist/src/infrastructure/jwt/token/jwt-token-validator.d.ts +0 -32
  172. package/dist/src/infrastructure/jwt/token/jwt-token-validator.js +0 -77
  173. package/dist/src/infrastructure/jwt/token/tools/jwt-signer.d.ts +0 -33
  174. package/dist/src/infrastructure/jwt/token/tools/jwt-signer.js +0 -46
  175. package/dist/src/infrastructure/jwt/token/tools/jwt-token-parser.d.ts +0 -30
  176. package/dist/src/infrastructure/jwt/token/tools/jwt-token-parser.js +0 -57
  177. package/dist/src/infrastructure/jwt/token/tools/jwt-token-validator.d.ts +0 -32
  178. package/dist/src/infrastructure/jwt/token/tools/jwt-token-validator.js +0 -77
  179. package/dist/src/infrastructure/repositories/index.d.ts +0 -1
  180. package/dist/src/infrastructure/repositories/test/in-memory-token-session.repository.d.ts +0 -67
  181. package/dist/src/infrastructure/repositories/test/in-memory-token-session.repository.js +0 -128
  182. package/dist/src/infrastructure/services/default-token-session.service.d.ts +0 -18
  183. package/dist/src/infrastructure/services/jwt-token.service.d.ts +0 -15
  184. package/dist/src/infrastructure/services/jwt-token.service.js +0 -44
  185. package/dist/src/infrastructure/services/simple-jwt-token.service.d.ts +0 -15
  186. package/dist/src/infrastructure/services/simple-jwt-token.service.js +0 -46
  187. package/dist/src/infrastructure/services/token-session.service.d.ts +0 -24
  188. package/dist/src/infrastructure/services/token-session.service.js +0 -131
  189. package/dist/src/infrastructure/types/auth-service-container.d.ts +0 -14
  190. package/dist/src/shared/constants/index.d.ts +0 -1
  191. package/dist/src/shared/constants/jwt-algorithms.d.ts +0 -17
  192. package/dist/src/shared/constants/jwt-algorithms.js +0 -23
  193. package/dist/src/shared/encoders/base64-url-encoder.d.ts +0 -29
  194. package/dist/src/shared/encoders/base64-url-encoder.js +0 -45
  195. package/dist/src/shared/encoders/index.d.ts +0 -1
  196. package/dist/src/shared/encoders/index.js +0 -17
  197. package/dist/src/shared/index.d.ts +0 -4
  198. package/dist/src/shared/index.js +0 -20
  199. package/dist/src/shared/types/index.d.ts +0 -1
  200. package/dist/src/shared/types/jwt.d.ts +0 -25
  201. package/dist/src/shared/types/jwt.js +0 -2
  202. package/dist/src/shared/types/jwt.types.d.ts +0 -39
  203. package/dist/src/shared/types/jwt.types.js +0 -2
  204. package/dist/tests/application/factory/auth-service-factory.spec.d.ts +0 -1
  205. package/dist/tests/application/factory/auth-service-factory.spec.js +0 -97
  206. package/dist/tests/application/use-cases/login-with-password.integration.spec.d.ts +0 -1
  207. package/dist/tests/application/use-cases/login-with-password.integration.spec.js +0 -140
  208. package/dist/tests/application/use-cases/logout-use-case.spec.d.ts +0 -1
  209. package/dist/tests/application/use-cases/logout-use-case.spec.js +0 -40
  210. package/dist/tests/application/use-cases/refresh-token-use-case.spec.d.ts +0 -1
  211. package/dist/tests/application/use-cases/refresh-token-use-case.spec.js +0 -116
  212. package/dist/tests/application/use-cases/register-user.usecase.spec.d.ts +0 -1
  213. package/dist/tests/application/use-cases/register-user.usecase.spec.js +0 -151
  214. package/dist/tests/domain/entities/credential.spec.d.ts +0 -1
  215. package/dist/tests/domain/entities/credential.spec.js +0 -93
  216. package/dist/tests/domain/entities/user.spec.d.ts +0 -1
  217. package/dist/tests/domain/entities/user.spec.js +0 -93
  218. package/dist/tests/domain/object-values/email.spec.d.ts +0 -1
  219. package/dist/tests/domain/object-values/email.spec.js +0 -77
  220. package/dist/tests/domain/object-values/hashed-password.spec.d.ts +0 -1
  221. package/dist/tests/domain/object-values/hashed-password.spec.js +0 -54
  222. package/dist/tests/domain/object-values/id.spec.d.ts +0 -1
  223. package/dist/tests/domain/object-values/id.spec.js +0 -48
  224. package/dist/tests/domain/object-values/permission.spec.d.ts +0 -1
  225. package/dist/tests/domain/object-values/permission.spec.js +0 -75
  226. package/dist/tests/domain/object-values/role.spec.d.ts +0 -1
  227. package/dist/tests/domain/object-values/role.spec.js +0 -139
  228. package/dist/tests/domain/services/default-password-policy.spec.d.ts +0 -1
  229. package/dist/tests/domain/services/default-password-policy.spec.js +0 -69
  230. package/dist/tests/doman/entities/credential.spec.d.ts +0 -1
  231. package/dist/tests/doman/entities/credential.spec.js +0 -93
  232. package/dist/tests/doman/entities/user.spec.d.ts +0 -1
  233. package/dist/tests/doman/entities/user.spec.js +0 -93
  234. package/dist/tests/doman/object-values/email.spec.d.ts +0 -1
  235. package/dist/tests/doman/object-values/email.spec.js +0 -77
  236. package/dist/tests/doman/object-values/hashed-password.spec.d.ts +0 -1
  237. package/dist/tests/doman/object-values/hashed-password.spec.js +0 -54
  238. package/dist/tests/doman/object-values/id.spec.d.ts +0 -1
  239. package/dist/tests/doman/object-values/id.spec.js +0 -48
  240. package/dist/tests/doman/object-values/permission.spec.d.ts +0 -1
  241. package/dist/tests/doman/object-values/permission.spec.js +0 -75
  242. package/dist/tests/doman/object-values/role.spec.d.ts +0 -1
  243. package/dist/tests/doman/object-values/role.spec.js +0 -139
  244. package/dist/tests/helpers/make-jwt-subject.d.ts +0 -7
  245. package/dist/tests/helpers/make-jwt-subject.js +0 -16
  246. package/dist/tests/helpers/make-jwt-user.d.ts +0 -7
  247. package/dist/tests/helpers/make-jwt-user.js +0 -16
  248. package/dist/tests/helpers/make-user.d.ts +0 -2
  249. package/dist/tests/helpers/make-user.js +0 -15
  250. package/dist/tests/infrastructure/jwt/signature-strategy-factory.spec.d.ts +0 -1
  251. package/dist/tests/infrastructure/jwt/signature-strategy-factory.spec.js +0 -127
  252. package/dist/tests/infrastructure/jwt/strategies/ecdsa-signature-strategy.spec.d.ts +0 -1
  253. package/dist/tests/infrastructure/jwt/strategies/ecdsa-signature-strategy.spec.js +0 -157
  254. package/dist/tests/infrastructure/jwt/strategies/hmac-signature-strategy.spec.d.ts +0 -1
  255. package/dist/tests/infrastructure/jwt/strategies/hmac-signature-strategy.spec.js +0 -150
  256. package/dist/tests/infrastructure/jwt/strategies/rsa-signature-strategy..spec.d.ts +0 -1
  257. package/dist/tests/infrastructure/jwt/strategies/rsa-signature-strategy..spec.js +0 -156
  258. package/dist/tests/infrastructure/jwt/token/actions/jwt-token-generator.spec.d.ts +0 -1
  259. package/dist/tests/infrastructure/jwt/token/actions/jwt-token-generator.spec.js +0 -179
  260. package/dist/tests/infrastructure/jwt/token/actions/jwt-token-verifier.spec.d.ts +0 -1
  261. package/dist/tests/infrastructure/jwt/token/actions/jwt-token-verifier.spec.js +0 -142
  262. package/dist/tests/infrastructure/jwt/token/jwt-signer.spec.d.ts +0 -1
  263. package/dist/tests/infrastructure/jwt/token/jwt-signer.spec.js +0 -125
  264. package/dist/tests/infrastructure/jwt/token/jwt-token-parser.spec.d.ts +0 -1
  265. package/dist/tests/infrastructure/jwt/token/jwt-token-parser.spec.js +0 -116
  266. package/dist/tests/infrastructure/jwt/token/jwt-token-validator.spec.d.ts +0 -1
  267. package/dist/tests/infrastructure/jwt/token/jwt-token-validator.spec.js +0 -88
  268. package/dist/tests/infrastructure/jwt/token/tools/jwt-signer.spec.d.ts +0 -1
  269. package/dist/tests/infrastructure/jwt/token/tools/jwt-signer.spec.js +0 -126
  270. package/dist/tests/infrastructure/jwt/token/tools/jwt-token-parser.spec.d.ts +0 -1
  271. package/dist/tests/infrastructure/jwt/token/tools/jwt-token-parser.spec.js +0 -116
  272. package/dist/tests/infrastructure/jwt/token/tools/jwt-token-validator.spec.d.ts +0 -1
  273. package/dist/tests/infrastructure/jwt/token/tools/jwt-token-validator.spec.js +0 -88
  274. package/dist/tests/infrastructure/security/security/bcrypt-password-hasher.spec.d.ts +0 -1
  275. package/dist/tests/infrastructure/security/security/bcrypt-password-hasher.spec.js +0 -37
  276. package/dist/tests/infrastructure/services/jwt-token-service.spec.d.ts +0 -1
  277. package/dist/tests/infrastructure/services/jwt-token-service.spec.js +0 -145
  278. package/dist/tests/infrastructure/services/token-session.service.spec.d.ts +0 -1
  279. package/dist/tests/infrastructure/services/token-session.service.spec.js +0 -269
  280. package/dist/tests/shared/constants/jwt-algorithms.spec.d.ts +0 -1
  281. package/dist/tests/shared/constants/jwt-algorithms.spec.js +0 -27
  282. package/dist/tests/shared/encoders/base64-url-encoder.spec.d.ts +0 -1
  283. package/dist/tests/shared/encoders/base64-url-encoder.spec.js +0 -70
  284. package/dist/tests/shared/utils/time-parser.spec.d.ts +0 -1
  285. package/dist/tests/shared/utils/time-parser.spec.js +0 -80
  286. package/dist/utils/index.d.ts +0 -1
  287. package/dist/utils/index.js +0 -17
  288. package/dist/utils/time-parser.d.ts +0 -28
  289. package/dist/utils/time-parser.js +0 -76
  290. /package/dist/{src/application/dtos/login.dto.js → application/dtos/request/login.request.js} +0 -0
  291. /package/dist/{src/application/dtos/logout.dto.js → application/dtos/request/logout.request.js} +0 -0
  292. /package/dist/{src/application/dtos/refresh-token.dto.js → application/dtos/request/refresh-token.request.js} +0 -0
  293. /package/dist/{src/application/dtos/register-user.dto.js → application/dtos/request/register-user.request.js} +0 -0
  294. /package/dist/{src/domain/ports/auth/password-hasher.js → application/dtos/response/login.response.js} +0 -0
  295. /package/dist/{src/domain/ports/auth/password-policy.port.js → application/dtos/response/logout.response.js} +0 -0
  296. /package/dist/{src/domain/ports/jwt/factory/signature-strategy-factory.port.js → application/dtos/response/refresh-token.response.js} +0 -0
  297. /package/dist/{src/domain/ports/jwt/payload/jwt-payload.port.js → application/dtos/response/register-user.response.js} +0 -0
  298. /package/dist/{src/domain/ports/jwt/signature-strategy-factory.port.js → application/dtos/type/user-role.type.js} +0 -0
  299. /package/dist/{src/application → application}/factories/index.d.ts +0 -0
  300. /package/dist/{src/application → application}/factories/index.js +0 -0
  301. /package/dist/{src/domain/ports/repository/credential.repository.js → application/types/auth-service-factory-options.type.js} +0 -0
  302. /package/dist/{src/application → application}/use-cases/index.d.ts +0 -0
  303. /package/dist/{src/application → application}/use-cases/index.js +0 -0
  304. /package/dist/{src/domain → domain}/entities/credential.entity.d.ts +0 -0
  305. /package/dist/{src/domain → domain}/entities/credential.entity.js +0 -0
  306. /package/dist/{src/domain → domain}/entities/index.d.ts +0 -0
  307. /package/dist/{src/domain → domain}/entities/index.js +0 -0
  308. /package/dist/{src/domain → domain}/entities/user.entity.d.ts +0 -0
  309. /package/dist/{src/domain → domain}/entities/user.entity.js +0 -0
  310. /package/dist/{src/domain → domain}/errors/identity.errors.d.ts +0 -0
  311. /package/dist/{src/domain → domain}/errors/identity.errors.js +0 -0
  312. /package/dist/{src/domain → domain}/errors/index.d.ts +0 -0
  313. /package/dist/{src/domain → domain}/errors/index.js +0 -0
  314. /package/dist/{src/domain → domain}/object-values/email.d.ts +0 -0
  315. /package/dist/{src/domain → domain}/object-values/email.js +0 -0
  316. /package/dist/{src/domain → domain}/object-values/hashed-password.d.ts +0 -0
  317. /package/dist/{src/domain → domain}/object-values/hashed-password.js +0 -0
  318. /package/dist/{src/domain → domain}/object-values/id.d.ts +0 -0
  319. /package/dist/{src/domain → domain}/object-values/id.js +0 -0
  320. /package/dist/{src/domain → domain}/object-values/index.d.ts +0 -0
  321. /package/dist/{src/domain → domain}/object-values/index.js +0 -0
  322. /package/dist/{src/domain → domain}/object-values/permission.d.ts +0 -0
  323. /package/dist/{src/domain → domain}/object-values/permission.js +0 -0
  324. /package/dist/{src/domain → domain}/object-values/role.d.ts +0 -0
  325. /package/dist/{src/domain → domain}/object-values/role.js +0 -0
  326. /package/dist/{src/domain/ports/repository/user.repository.js → domain/ports/auth/password-hasher.port.js} +0 -0
  327. /package/dist/{src/domain/ports/token/token-session.port.js → domain/ports/auth/password-policy.port.js} +0 -0
  328. /package/dist/{src/domain → domain}/ports/jwt/payload/jwt-payload.port.d.ts +0 -0
  329. /package/dist/{src/domain/ports/token/token.service.port.js → domain/ports/jwt/payload/jwt-payload.port.js} +0 -0
  330. /package/dist/{src/domain/props/entities/credential.props.js → domain/ports/repository/credential.repository.js} +0 -0
  331. /package/dist/{src/domain/props/entities/user.props.js → domain/ports/repository/user-repository.port.js} +0 -0
  332. /package/dist/{src/domain/props/jwt/create-payload.props.js → domain/ports/token/token-session.port.js} +0 -0
  333. /package/dist/{src/domain/services → domain/ports/token}/token.service.port.js +0 -0
  334. /package/dist/{src/domain → domain}/props/entities/credential.props.d.ts +0 -0
  335. /package/dist/{src/domain/props/jwt/generate-access-token.props.js → domain/props/entities/credential.props.js} +0 -0
  336. /package/dist/{src/domain → domain}/props/entities/index.d.ts +0 -0
  337. /package/dist/{src/domain → domain}/props/entities/index.js +0 -0
  338. /package/dist/{src/domain → domain}/props/entities/user.props.d.ts +0 -0
  339. /package/dist/{src/domain/props/jwt/generate-refresh-token.props.js → domain/props/entities/user.props.js} +0 -0
  340. /package/dist/{src/domain → domain}/props/index.d.ts +0 -0
  341. /package/dist/{src/domain → domain}/props/index.js +0 -0
  342. /package/dist/{src/domain/props/services → domain/props/jwt}/generate-access-token.props.js +0 -0
  343. /package/dist/{src/domain/props/services → domain/props/jwt}/generate-refresh-token.props.js +0 -0
  344. /package/dist/{src/domain → domain}/props/jwt/jwt-user.d.ts +0 -0
  345. /package/dist/{src/domain → domain}/props/jwt/jwt-user.js +0 -0
  346. /package/dist/{src/domain → domain}/services/index.d.ts +0 -0
  347. /package/dist/{src/domain → domain}/services/index.js +0 -0
  348. /package/dist/{src/domain → domain}/services/password-policy.service.js +0 -0
  349. /package/dist/{src/infrastructure/repositories/test → in-memory}/in-memory-user.repository.js +0 -0
  350. /package/dist/{src/infrastructure/repositories/test → in-memory}/index.d.ts +0 -0
  351. /package/dist/{src/infrastructure/repositories/test → in-memory}/index.js +0 -0
  352. /package/dist/{src/domain/ports/auth/password-policy-config.port.d.ts → infrastructure/index.d.ts} +0 -0
  353. /package/dist/{src/infrastructure → infrastructure}/security/index.d.ts +0 -0
  354. /package/dist/{src/infrastructure → infrastructure}/security/index.js +0 -0
  355. /package/dist/{src/infrastructure → infrastructure}/types/auth-service-container.js +0 -0
  356. /package/dist/{src/infrastructure → infrastructure}/types/index.d.ts +0 -0
  357. /package/dist/{src/infrastructure → infrastructure}/types/index.js +0 -0
  358. /package/dist/{src/shared → shared}/utils/index.d.ts +0 -0
  359. /package/dist/{src/shared → shared}/utils/index.js +0 -0
  360. /package/dist/{src/shared → shared}/utils/time-parser.d.ts +0 -0
  361. /package/dist/{src/shared → shared}/utils/time-parser.js +0 -0
@@ -1,411 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.EntityObjectExamples = void 0;
37
- const bcrypt = __importStar(require("bcryptjs"));
38
- const entities_1 = require("../src/domain/entities");
39
- const object_values_1 = require("../src/domain/object-values");
40
- class EntityObjectExamples {
41
- static async Main() {
42
- console.log("🚀 Iniciando Object Values...\n");
43
- // Ejecutar ejemplo de Email
44
- await this.RunEmailExample();
45
- // Ejecutar ejemplo de HashedPassword
46
- await this.RunHashedPasswordExample();
47
- // Ejecutar ejemplo de Id
48
- await this.RunIdExample();
49
- // Ejecutar ejemplo de Permission
50
- await this.RunPermissionExample();
51
- // Ejecutar ejemplo de Role
52
- await this.RunRoleExample();
53
- console.log("\n🚀 Iniciando Entities.\n");
54
- // Ejecutar ejemplo de User
55
- await this.RunUserExample();
56
- // Ejecutar ejemplo de Credential
57
- await this.RunCredentialExample();
58
- }
59
- /**
60
- * Ejemplo demostrativo de uso de la clase Email.
61
- * Muestra validaciones, comparaciones y manejo de errores.
62
- */
63
- static async RunEmailExample() {
64
- console.log("=== 🧪 Email Value Object Example ===\n");
65
- // 1️⃣ Crear correos válidos y observar el formato estandarizado
66
- try {
67
- const email1 = new object_values_1.Email(" Usuario.Example@DOMAIN.com ");
68
- console.log("→ Email creado correctamente:");
69
- console.log(` Valor interno: ${email1.getValue()}\n`);
70
- // 2️⃣ Crear otro correo para comparar
71
- const email2 = new object_values_1.Email("usuario.example@domain.com");
72
- console.log("→ Segundo email creado:");
73
- console.log(` Valor interno: ${email2.getValue()}\n`);
74
- // 3️⃣ Comparar ambos correos
75
- const sonIguales = email1.equals(email2);
76
- console.log(`→ Comparación entre ambos correos: ${sonIguales ? "iguales ✅" : "diferentes ❌"}\n`);
77
- // 4️⃣ Mostrar conversión a string
78
- console.log("→ Conversión a string del primer email:");
79
- console.log(` ${email1.toString()}\n`);
80
- }
81
- catch (err) {
82
- console.error("❌ Error al crear o comparar correos:", err, "\n");
83
- }
84
- // 5️⃣ Intentar crear un correo inválido
85
- try {
86
- console.log("→ Intentando crear un correo inválido...");
87
- const invalidEmail = new object_values_1.Email("correo-invalido@@example..com");
88
- console.log(` ${invalidEmail.getValue()}`); // No debería llegar aquí
89
- }
90
- catch (err) {
91
- console.error("❌ Se detectó un correo inválido correctamente:", err.message, "\n");
92
- }
93
- // 6️⃣ Resumen final
94
- console.log("=== ✅ Fin del ejemplo Email Value Object ===");
95
- }
96
- /**
97
- * Ejemplo demostrativo de uso de la clase HashedPassword.
98
- * Muestra validación de formato, comparación de hashes y manejo de errores.
99
- */
100
- static async RunHashedPasswordExample() {
101
- console.log("=== 🧪 HashedPassword Value Object Example ===\n");
102
- // 1️⃣ Generar un hash válido usando bcrypt
103
- console.log("→ Generando hash bcrypt válido...");
104
- const plainPassword = "MiClaveSegura123!";
105
- const saltRounds = 10;
106
- const validHash = await bcrypt.hash(plainPassword, saltRounds);
107
- console.log("✅ Hash generado correctamente:");
108
- console.log(validHash, "\n");
109
- // 2️⃣ Crear una instancia de HashedPassword con el hash válido
110
- try {
111
- const hashed = new object_values_1.HashedPassword(validHash);
112
- console.log("→ Instancia HashedPassword creada correctamente.\n");
113
- // 3️⃣ Mostrar protección en toString() y toJSON()
114
- console.log("→ Protección ante exposición accidental:");
115
- console.log(` toString(): ${hashed.toString()}`);
116
- console.log(` toJSON(): ${hashed.toJSON()}\n`);
117
- // 4️⃣ Serialización controlada (para persistencia)
118
- console.log("→ Serialización segura (solo para repositorios):");
119
- console.log(` ${hashed.serialize()}\n`);
120
- }
121
- catch (err) {
122
- console.error("❌ Error al crear o verificar hash:", err, "\n");
123
- }
124
- // 5️⃣ Intentar crear un hash inválido
125
- try {
126
- console.log("→ Intentando crear un hash inválido...");
127
- const invalidHash = "$2b$03$hashdemasiadocorto";
128
- const invalid = new object_values_1.HashedPassword(invalidHash);
129
- console.log(invalid); // No debería llegar aquí
130
- }
131
- catch (err) {
132
- console.error("❌ Se detectó un hash inválido correctamente:", err.message, "\n");
133
- }
134
- // 6️⃣ Fin del ejemplo
135
- console.log("=== ✅ Fin del ejemplo HashedPassword ===");
136
- }
137
- /**
138
- * Ejemplo demostrativo de uso de la clase Id.
139
- * Muestra generación, comparación e instanciación manual de identificadores.
140
- */
141
- static async RunIdExample() {
142
- console.log("=== 🧪 Id Value Object Example ===\n");
143
- // 1️⃣ Generar un nuevo ID único
144
- const id1 = object_values_1.Id.generate();
145
- console.log("→ ID generado automáticamente:");
146
- console.log(` ${id1.getValue()}\n`);
147
- // 2️⃣ Crear una nueva instancia con un valor manual
148
- try {
149
- const id2 = new object_values_1.Id("user-123");
150
- console.log("→ ID creado manualmente:");
151
- console.log(` ${id2.getValue()}\n`);
152
- // 3️⃣ Comparar ambos IDs
153
- const areEqual = id1.equals(id2);
154
- console.log(`→ Comparación entre IDs: ${areEqual ? "iguales ✅" : "diferentes ❌"}\n`);
155
- // 4️⃣ Convertir a string (representación legible)
156
- console.log("→ Representación como string:");
157
- console.log(` ${id2.toString()}\n`);
158
- }
159
- catch (err) {
160
- console.error("❌ Error al crear o comparar IDs:", err, "\n");
161
- }
162
- // 5️⃣ Intentar crear un ID inválido
163
- try {
164
- console.log("→ Intentando crear un ID vacío...");
165
- const invalidId = new object_values_1.Id(" ");
166
- console.log(invalidId); // No debería ejecutarse
167
- }
168
- catch (err) {
169
- console.error("❌ Se detectó un ID inválido correctamente:", err.message, "\n");
170
- }
171
- // 6️⃣ Generar múltiples IDs para observar su unicidad
172
- console.log("→ Generando varios IDs únicos...");
173
- const ids = Array.from({ length: 3 }, () => object_values_1.Id.generate());
174
- ids.forEach((id, i) => console.log(` ID ${i + 1}: ${id.getValue()}`));
175
- console.log();
176
- // 7️⃣ Fin del ejemplo
177
- console.log("=== ✅ Fin del ejemplo Id Value Object ===");
178
- }
179
- /**
180
- * Ejemplo demostrativo de uso de la clase Permission.
181
- * Muestra creación, comparación, coincidencias y manejo de errores.
182
- */
183
- static async RunPermissionExample() {
184
- console.log("=== 🧪 Permission Value Object Example ===\n");
185
- // 1️⃣ Crear permisos válidos
186
- try {
187
- const perm1 = new object_values_1.Permission("read:users");
188
- const perm2 = new object_values_1.Permission("read:*");
189
- const perm3 = new object_values_1.Permission("*");
190
- console.log("→ Permisos creados correctamente:");
191
- console.log(` perm1: ${perm1.getValue()}`);
192
- console.log(` perm2: ${perm2.getValue()}`);
193
- console.log(` perm3 (comodín total): ${perm3.getValue()}\n`);
194
- // 2️⃣ Comparar permisos entre sí
195
- const areEqual = perm1.equals(perm2);
196
- console.log(`→ Comparación perm1 vs perm2: ${areEqual ? "iguales ✅" : "diferentes ❌"}\n`);
197
- // 3️⃣ Verificar coincidencias con distintos targets
198
- console.log("→ Probando coincidencias con distintos targets...");
199
- console.log(` perm1.matches("read:users") → ${perm1.matches("read:users") ? "✅" : "❌"}`);
200
- console.log(` perm1.matches("read:profile") → ${perm1.matches("read:profile") ? "✅" : "❌"}`);
201
- console.log(` perm2.matches("read:settings") → ${perm2.matches("read:settings") ? "✅" : "❌"}`);
202
- console.log(` perm3.matches("delete:users") → ${perm3.matches("delete:users") ? "✅" : "❌"} (comodín total)\n`);
203
- // 4️⃣ Usar el método estático create()
204
- const perm4 = object_values_1.Permission.create("write:posts");
205
- console.log("→ Creado con método estático create():");
206
- console.log(` ${perm4.toString()}\n`);
207
- // 5️⃣ Detectar permisos con comodín (Acceso total) *
208
- console.log("→ Verificando comodines:");
209
- console.log(` perm1.isWildcard() → ${perm1.isWildcard() ? "✅" : "❌"}`);
210
- console.log(` perm3.isWildcard() → ${perm3.isWildcard() ? "✅" : "❌"}\n`);
211
- }
212
- catch (err) {
213
- console.error("❌ Error durante la creación o comparación de permisos:", err, "\n");
214
- }
215
- // 6️⃣ Intentar crear permisos inválidos
216
- try {
217
- console.log("→ Intentando crear un permiso nulo...");
218
- const invalid1 = new object_values_1.Permission(null);
219
- console.log(invalid1); // no debería ejecutarse
220
- }
221
- catch (err) {
222
- console.error("❌ Se detectó permiso nulo correctamente:", err.message, "\n");
223
- }
224
- try {
225
- console.log("→ Intentando crear un permiso vacío...");
226
- const invalid2 = new object_values_1.Permission(" ");
227
- console.log(invalid2); // no debería ejecutarse
228
- }
229
- catch (err) {
230
- console.error("❌ Se detectó permiso vacío correctamente:", err.message, "\n");
231
- }
232
- // 7️⃣ Fin del ejemplo
233
- console.log("=== ✅ Fin del ejemplo Permission Value Object ===");
234
- }
235
- /**
236
- * Ejemplo demostrativo de uso de la clase Role.
237
- * Muestra creación de roles, validación de roles permitidos, manejo de permisos,
238
- * uso de comodines, y verificación de acciones específicas.
239
- */
240
- static async RunRoleExample() {
241
- console.log("=== 🧪 Role Value Object Example ===\n");
242
- // 1️⃣ Crear algunos permisos base
243
- const pReadUsers = new object_values_1.Permission("read:users");
244
- const pReadAll = new object_values_1.Permission("read:*");
245
- const pWritePosts = new object_values_1.Permission("write:posts");
246
- const pWildcard = new object_values_1.Permission("*");
247
- console.log("→ Permisos preparados:");
248
- console.log(` ${pReadUsers.getValue()}, ${pReadAll.getValue()}, ${pWritePosts.getValue()}, ${pWildcard.getValue()}\n`);
249
- // 2️⃣ Crear un rol simple sin restricciones de roles válidos
250
- try {
251
- const roleReader = object_values_1.Role.create("Reader", [pReadUsers, pReadAll]);
252
- console.log("→ Rol creado sin validación de roles:");
253
- console.log(` Rol: ${roleReader.toString()}`);
254
- console.log(` Permisos: ${roleReader.getValue().permissions.join(", ")}\n`);
255
- // 3️⃣ Verificar permisos directos y por comodín
256
- console.log("→ Verificación de permisos (roleReader):");
257
- console.log(` read:users → ${roleReader.hasPermission("read:users") ? "✅" : "❌"}`);
258
- console.log(` read:settings (por prefijo read:*) → ${roleReader.hasPermission("read:settings") ? "✅" : "❌"}`);
259
- console.log(` delete:users → ${roleReader.hasPermission("delete:users") ? "✅" : "❌"}\n`);
260
- // 4️⃣ Usar métodos de comprobación múltiple
261
- const hasAny = roleReader.hasAnyPermission(["write:posts", "read:*"]);
262
- const hasAll = roleReader.hasAllPermissions(["read:users", "read:*"]);
263
- console.log(`→ hasAny(["write:posts", "read:*"]) → ${hasAny ? "✅" : "❌"}`);
264
- console.log(`→ hasAll(["read:users", "read:*"]) → ${hasAll ? "✅" : "❌"}\n`);
265
- // 5️⃣ Verificar si puede realizar una acción específica
266
- console.log("→ Verificación de acción (canPerform):");
267
- console.log(` Puede "read" sobre "users": ${roleReader.canPerform("read", "users") ? "✅" : "❌"}`);
268
- console.log(` Puede "write" sobre "posts": ${roleReader.canPerform("write", "posts") ? "✅" : "❌"}`);
269
- console.log(` Puede "delete" sobre "users": ${roleReader.canPerform("delete", "users") ? "✅" : "❌"}\n`);
270
- // 6️⃣ Crear un nuevo rol con permisos adicionales
271
- const roleEditor = roleReader.withPermissions([pWritePosts]);
272
- console.log("→ Rol extendido con permisos adicionales:");
273
- console.log(` ${roleEditor.getValue().permissions.join(", ")}\n`);
274
- // 7️⃣ Crear un rol validado contra una lista de roles permitidos
275
- console.log("→ Creando rol validado contra lista de roles...");
276
- const validRoles = ["admin", "editor", "reader"];
277
- const roleAdmin = object_values_1.Role.withValidRoles("Admin", [pWildcard], validRoles);
278
- console.log(` Rol creado: ${roleAdmin.toString()} ✅\n`);
279
- // 8️⃣ Comprobar igualdad y coincidencias
280
- const sameRole = new object_values_1.Role("reader", [pReadAll]);
281
- console.log(`→ ¿roleReader.equals(sameRole)? → ${roleReader.equals(sameRole) ? "✅" : "❌"}`);
282
- console.log(`→ ¿roleAdmin.hasRole("admin")? → ${roleAdmin.hasRole("admin") ? "✅" : "❌"}\n`);
283
- }
284
- catch (err) {
285
- console.error("❌ Error al crear o validar roles:", err, "\n");
286
- }
287
- // 9️⃣ Intentar crear un rol inválido fuera de los roles permitidos
288
- try {
289
- console.log("→ Intentando crear un rol inválido...");
290
- const validRoles = ["admin", "editor"];
291
- const invalidRole = object_values_1.Role.withValidRoles("guest", [], validRoles);
292
- console.log(invalidRole); // No debería ejecutarse
293
- }
294
- catch (err) {
295
- console.error("❌ Se detectó un rol inválido correctamente:", err.message, "\n");
296
- }
297
- // 🔟 Fin del ejemplo
298
- console.log("=== ✅ Fin del ejemplo Role Value Object ===");
299
- }
300
- /**
301
- * Ejemplo demostrativo de uso de la entidad User.
302
- * Muestra la creación, activación, desactivación y verificación de login.
303
- */
304
- static async RunUserExample() {
305
- console.log("=== 🧪 User Entity Example ===\n");
306
- // 1️⃣ Preparar los valores base del dominio
307
- console.log("→ Generando hash de contraseña...");
308
- const plainPassword = "MiClaveSegura123!";
309
- const hash = await bcrypt.hash(plainPassword, 10);
310
- console.log(` Hash generado: ${hash}\n`);
311
- // Crear roles con permisos
312
- const pReadUsers = new object_values_1.Permission("read:users");
313
- const pWritePosts = new object_values_1.Permission("write:posts");
314
- const roleAdmin = object_values_1.Role.create("admin", [pReadUsers, pWritePosts]);
315
- console.log("→ Rol creado para el usuario:");
316
- console.log(` Rol: ${roleAdmin.toString()} | Permisos: ${roleAdmin
317
- .getValue()
318
- .permissions.join(", ")}\n`);
319
- // 2️⃣ Crear un nuevo usuario usando el método de fábrica
320
- const user = entities_1.User.create("usuario@example.com", [roleAdmin], hash);
321
- console.log("✅ Usuario creado correctamente:\n");
322
- console.log(` ID: ${user.id.toString()}`);
323
- console.log(` Email: ${user.email.toString()}`);
324
- console.log(` Activo: ${user.isActive ? "Sí" : "No"}`);
325
- console.log(` Roles: ${user.roles.map((r) => r.toString()).join(", ")}\n`);
326
- // 3️⃣ Probar comportamiento de negocio
327
- console.log("→ Verificando si puede iniciar sesión:");
328
- console.log(` canLogin() → ${user.canLogin() ? "✅ Sí puede" : "❌ No puede"}\n`);
329
- // 4️⃣ Desactivar al usuario
330
- console.log("→ Desactivando usuario...");
331
- user.deactivate();
332
- console.log(` Activo: ${user.isActive ? "Sí" : "No"}`);
333
- console.log(` UpdatedAt: ${user.updatedAt.toISOString()}`);
334
- console.log(` Puede iniciar sesión: ${user.canLogin() ? "✅" : "❌"}\n`);
335
- // 5️⃣ Reactivar usuario
336
- console.log("→ Reactivando usuario...");
337
- user.activate();
338
- console.log(` Activo: ${user.isActive ? "Sí" : "No"}`);
339
- console.log(` UpdatedAt: ${user.updatedAt.toISOString()}\n`);
340
- // 6️⃣ Reconstruir usuario (simulando recuperación desde base de datos)
341
- console.log("→ Reconstruyendo usuario desde datos persistidos...");
342
- const reconstituted = entities_1.User.reconstitute({
343
- id: user.id,
344
- email: user.email,
345
- roles: user.roles,
346
- password: user.password,
347
- isActive: user.isActive,
348
- createdAt: user.createdAt,
349
- updatedAt: user.updatedAt,
350
- });
351
- console.log("✅ Usuario reconstruido correctamente:");
352
- console.log(` ID: ${reconstituted.id.toString()}`);
353
- console.log(` Email: ${reconstituted.email.toString()}`);
354
- console.log(` Activo: ${reconstituted.isActive ? "Sí" : "No"}`);
355
- console.log(` Roles: ${reconstituted.roles.map((r) => r.toString()).join(", ")}\n`);
356
- // 7️⃣ Resumen final
357
- console.log("=== ✅ Fin del ejemplo User Entity ===");
358
- }
359
- /**
360
- * Ejemplo demostrativo de uso de la entidad Credential.
361
- * Muestra cómo crear, validar y reconstruir credenciales dentro del dominio.
362
- */
363
- static async RunCredentialExample() {
364
- console.log("=== 🧪 Credential Entity Example ===\n");
365
- // 1️⃣ Crear un identificador de usuario
366
- const userId = object_values_1.Id.generate();
367
- console.log("→ ID de usuario generado:");
368
- console.log(` ${userId.toString()}\n`);
369
- // 2️⃣ Simular tokens generados por jwt.auth
370
- const accessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.access.payload.signature";
371
- const refreshToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.refresh.payload.signature";
372
- const expiresAt = new Date(Date.now() + 60 * 60 * 1000); // +1 hora
373
- console.log("→ Tokens simulados:");
374
- console.log(` Access Token: ${accessToken}`);
375
- console.log(` Refresh Token: ${refreshToken}`);
376
- console.log(` Expira en: ${expiresAt.toISOString()}\n`);
377
- // 3️⃣ Crear credenciales activas con método de fábrica
378
- const credentials = entities_1.Credential.create(userId, accessToken, refreshToken, expiresAt);
379
- console.log("✅ Credenciales creadas correctamente:");
380
- console.log(` User ID: ${credentials.userId.toString()}`);
381
- console.log(` Access Token: ${credentials.accessToken}`);
382
- console.log(` Refresh Token: ${credentials.refreshToken}`);
383
- console.log(` Created At: ${credentials.createdAt.toISOString()}`);
384
- console.log(` Expires At: ${credentials.expiresAt.toISOString()}\n`);
385
- // 4️⃣ Verificar validez
386
- console.log("→ Verificación de estado:");
387
- console.log(` isExpired() → ${credentials.isExpired() ? "Sí ❌" : "No ✅"}`);
388
- console.log(` isValid() → ${credentials.isValid() ? "Sí ✅" : "No ❌"}\n`);
389
- // 5️⃣ Simular expiración manual
390
- const expiredCreds = entities_1.Credential.create(userId, accessToken, refreshToken, new Date(Date.now() - 10 * 60 * 1000) // hace 10 minutos
391
- );
392
- console.log("→ Credenciales expiradas simuladas:");
393
- console.log(` isExpired() → ${expiredCreds.isExpired() ? "Sí ❌" : "No ✅"}`);
394
- console.log(` isValid() → ${expiredCreds.isValid() ? "Sí ✅" : "No ❌"}\n`);
395
- // 6️⃣ Reconstruir credenciales (simulando lectura desde BD)
396
- const reconstituted = entities_1.Credential.reconstitute({
397
- userId,
398
- accessToken,
399
- refreshToken,
400
- expiresAt,
401
- createdAt: new Date(),
402
- });
403
- console.log("→ Credenciales reconstruidas desde persistencia:");
404
- console.log(` User ID: ${reconstituted.userId.toString()}`);
405
- console.log(` Access Token: ${reconstituted.accessToken}`);
406
- console.log(` Estado: ${reconstituted.isValid() ? "válidas ✅" : "expiradas ❌"}\n`);
407
- // 7️⃣ Resumen final
408
- console.log("=== ✅ Fin del ejemplo Credential Entity ===");
409
- }
410
- }
411
- exports.EntityObjectExamples = EntityObjectExamples;
@@ -1,3 +0,0 @@
1
- export declare class AuthServiceFactoryExample {
2
- static Main(): Promise<void>;
3
- }
@@ -1,84 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthServiceFactoryExample = void 0;
4
- const application_1 = require("../src/application");
5
- const infrastructure_1 = require("../src/infrastructure");
6
- class AuthServiceFactoryExample {
7
- static async Main() {
8
- console.log("=== 🧩 Ejemplo de uso de AuthServiceFactory ===\n");
9
- // 1️⃣ Configuración central del módulo de autenticación
10
- const config = {
11
- jwt: {
12
- accessTokenSecret: "super_secret_access_key_123",
13
- refreshTokenSecret: "super_secret_refresh_key_456",
14
- accessTokenExpirationMs: 1000 * 60 * 15, // 15 minutos
15
- refreshTokenExpirationMs: 1000 * 60 * 60 * 24 * 7, // 7 días
16
- accessTokenExpiration: "15m",
17
- refreshTokenExpiration: "7d",
18
- },
19
- info: {
20
- issuer: "auth-service",
21
- audience: "example-client",
22
- },
23
- bcrypt: {
24
- saltRounds: 10,
25
- },
26
- algorithm: "HS256",
27
- };
28
- // 2️⃣ Crear el contenedor de servicios de autenticación
29
- const container = application_1.AuthServiceFactory.create(config, new infrastructure_1.InMemoryUserRepository(), new infrastructure_1.InMemoryCredentialRepository());
30
- const { registerUserUseCase, loginWithPasswordUseCase, refreshTokenUseCase, logoutUseCase, userRepository, credentialRepository, } = container;
31
- console.log("✅ Contenedor de autenticación creado.\n");
32
- // 3️⃣ Registrar un usuario (simula /auth/register)
33
- console.log("→ Registrando usuario...\n");
34
- const email = "user@example.com";
35
- const password = "StrongP@ssw0rd";
36
- // Ajusta este objeto según tu RegisterUserRequest real
37
- const registerRequest = {
38
- email,
39
- password,
40
- confirmPassword: password,
41
- // name, roles, etc. si tu DTO lo requiere
42
- };
43
- const registerResult = await registerUserUseCase.execute(registerRequest);
44
- console.log("✅ Usuario registrado.");
45
- console.log("Resultado de registro:", registerResult, "\n");
46
- // 4️⃣ Login con email y password (simula /auth/login)
47
- console.log("→ Iniciando sesión con email y password...\n");
48
- const loginRequest = {
49
- email,
50
- password,
51
- };
52
- const loginResponse = await loginWithPasswordUseCase.execute(loginRequest);
53
- console.log("✅ Login exitoso. Tokens emitidos:");
54
- console.log("Access token:", loginResponse.accessToken);
55
- console.log("Refresh token:", loginResponse.refreshToken, "\n");
56
- // 5️⃣ Refrescar token (simula /auth/refresh)
57
- console.log("→ Refrescando sesión con refresh token...\n");
58
- const refreshToken = loginResponse.refreshToken;
59
- // Ajusta según tu RefreshTokenRequest real
60
- const refreshRequest = {
61
- refreshToken,
62
- };
63
- const refreshResponse = await refreshTokenUseCase.execute(refreshRequest);
64
- console.log("✅ Sesión refrescada. Nuevos tokens:");
65
- console.log("Nuevo access token:", refreshResponse.accessToken);
66
- console.log("Nuevo refresh token:", refreshResponse.refreshToken, "\n");
67
- // 6️⃣ Hacer logout (revocar sesión) usando refresh token (simula /auth/logout)
68
- console.log("→ Cerrando sesión (logout) con refresh token...\n");
69
- // En un caso real usarías el refresh token actual del cliente
70
- const logoutRequest = {
71
- refreshToken: refreshResponse.refreshToken,
72
- };
73
- await logoutUseCase.execute(logoutRequest);
74
- console.log("🚪 Sesión cerrada. Refresh token revocado.\n");
75
- // 7️⃣ Verificar estado interno (repositorios en memoria)
76
- console.log("→ Estado interno (solo para demo):");
77
- console.log("- Total usuarios en memoria:", userRepository.users?.size ?? "desconocido");
78
- console.log("- Total credenciales activas:", credentialRepository.credentials?.size ?? "desconocido");
79
- console.log("\n=== 🧩 Fin del ejemplo AuthServiceFactory ===");
80
- }
81
- }
82
- exports.AuthServiceFactoryExample = AuthServiceFactoryExample;
83
- // Opcional: ejecutar directamente este ejemplo con Node
84
- // AuthServiceFactoryExample.Main().catch((err) => console.error(err));
@@ -1,12 +0,0 @@
1
- export declare class MainExample {
2
- runEntityObjectExamples(): Promise<void>;
3
- runJwtAlgoritmExamples(): Promise<void>;
4
- runJwtTokenGeneratorExamples(): Promise<void>;
5
- runExampleJwtVerifier(): Promise<void>;
6
- runExamplePasswordValidations(): Promise<void>;
7
- runExampleUseCases(): Promise<void>;
8
- runExampleServices(): Promise<void>;
9
- runExampleFactories(): Promise<void>;
10
- runAllExamples(): Promise<void>;
11
- }
12
- export default MainExample;