@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.
- package/README.md +259 -306
- package/dist/application/dtos/index.d.ts +3 -0
- package/dist/application/dtos/index.js +19 -0
- package/dist/application/dtos/request/index.d.ts +4 -0
- package/dist/{src/application/dtos → application/dtos/request}/index.js +4 -4
- package/dist/{src/application/dtos/login.dto.d.ts → application/dtos/request/login.request.d.ts} +0 -4
- package/dist/application/dtos/request/logout.request.d.ts +3 -0
- package/dist/application/dtos/request/refresh-token.request.d.ts +3 -0
- package/dist/application/dtos/request/register-user.request.d.ts +6 -0
- package/dist/application/dtos/response/index.d.ts +4 -0
- package/dist/application/dtos/response/index.js +20 -0
- package/dist/application/dtos/response/login.response.d.ts +4 -0
- package/dist/{src/application/dtos/logout.dto.d.ts → application/dtos/response/logout.response.d.ts} +0 -3
- package/dist/{src/application/dtos/refresh-token.dto.d.ts → application/dtos/response/refresh-token.response.d.ts} +0 -3
- package/dist/application/dtos/response/register-user.response.d.ts +7 -0
- package/dist/application/dtos/type/index.d.ts +1 -0
- package/dist/{src/shared/constants → application/dtos/type}/index.js +1 -1
- package/dist/application/dtos/type/user-role.type.d.ts +4 -0
- package/dist/application/factories/auth-service.factory.d.ts +11 -0
- package/dist/application/factories/auth-service.factory.js +40 -0
- package/dist/{src/application → application}/index.d.ts +1 -0
- package/dist/{src/application → application}/index.js +1 -0
- package/dist/application/types/auth-service-factory-options.type.d.ts +5 -0
- package/dist/application/types/index.d.ts +1 -0
- package/dist/{src/infrastructure/jwt/factory → application/types}/index.js +1 -1
- package/dist/{src/application → application}/use-cases/login-with-password.use-case.d.ts +2 -2
- package/dist/{src/application → application}/use-cases/login-with-password.use-case.js +6 -5
- package/dist/{src/application → application}/use-cases/logout.use-case.d.ts +2 -2
- package/dist/{src/application → application}/use-cases/logout.use-case.js +2 -2
- package/dist/{src/application → application}/use-cases/refresh-token.use-case.d.ts +2 -2
- package/dist/{src/application → application}/use-cases/refresh-token.use-case.js +2 -2
- package/dist/application/use-cases/register-user.use-case.d.ts +12 -0
- package/dist/{src/application → application}/use-cases/register-user.use-case.js +27 -1
- package/dist/{src/domain → domain}/errors/auth.errors.d.ts +1 -14
- package/dist/{src/domain → domain}/errors/auth.errors.js +1 -15
- package/dist/{src/domain → domain}/index.d.ts +0 -1
- package/dist/{src/domain → domain}/index.js +0 -1
- package/dist/domain/ports/auth/index.d.ts +2 -0
- package/dist/domain/ports/auth/index.js +18 -0
- package/dist/{src/domain/ports/auth/password-hasher.d.ts → domain/ports/auth/password-hasher.port.d.ts} +1 -1
- package/dist/{src/domain → domain}/ports/auth/password-policy.port.d.ts +1 -1
- package/dist/domain/ports/index.d.ts +4 -0
- package/dist/{src/infrastructure/jwt → domain/ports}/index.js +3 -2
- package/dist/domain/ports/jwt/index.d.ts +1 -0
- package/dist/{src/shared/types → domain/ports/jwt}/index.js +1 -1
- package/dist/domain/ports/jwt/payload/index.d.ts +1 -0
- package/dist/domain/ports/jwt/payload/index.js +17 -0
- package/dist/{src/domain → domain}/ports/repository/credential.repository.d.ts +1 -1
- package/dist/{src/domain → domain}/ports/repository/index.d.ts +1 -1
- package/dist/{src/domain → domain}/ports/repository/index.js +1 -1
- package/dist/{src/domain/ports/repository/user.repository.d.ts → domain/ports/repository/user-repository.port.d.ts} +1 -1
- package/dist/domain/ports/token/index.d.ts +2 -0
- package/dist/domain/ports/token/index.js +18 -0
- package/dist/{src/domain → domain}/ports/token/token-session.port.d.ts +2 -2
- package/dist/{src/domain → domain}/ports/token/token.service.port.d.ts +2 -2
- package/dist/{src/domain → domain}/props/jwt/generate-access-token.props.d.ts +0 -2
- package/dist/{src/domain → domain}/props/jwt/generate-refresh-token.props.d.ts +0 -2
- package/dist/{src/domain/props/services → domain/props/jwt}/index.d.ts +1 -0
- package/dist/{src/domain/props/services → domain/props/jwt}/index.js +1 -0
- package/dist/{src/domain → domain}/services/password-policy.service.d.ts +2 -2
- package/dist/{src/infrastructure/repositories/test → in-memory}/in-memory-credential.repository.d.ts +2 -2
- package/dist/{src/infrastructure/repositories/test → in-memory}/in-memory-credential.repository.js +12 -2
- package/dist/{src/infrastructure/repositories/test → in-memory}/in-memory-user.repository.d.ts +2 -2
- package/dist/index.d.ts +4 -1
- package/dist/index.js +11 -1
- package/dist/infrastructure/index.js +1 -0
- package/dist/{src/infrastructure → infrastructure}/security/bcrypt-password-hasher.d.ts +7 -2
- package/dist/{src/infrastructure → infrastructure}/security/bcrypt-password-hasher.js +7 -2
- package/dist/{src/infrastructure → infrastructure}/services/index.d.ts +0 -1
- package/dist/{src/infrastructure → infrastructure}/services/index.js +0 -1
- package/dist/infrastructure/services/token-session.service.d.ts +22 -0
- package/dist/{src/infrastructure/services/default-token-session.service.js → infrastructure/services/token-session.service.js} +30 -31
- package/dist/infrastructure/types/auth-service-container.d.ts +14 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/{src/infrastructure/repositories → shared}/index.js +1 -1
- package/package.json +5 -8
- package/dist/examples/bcrypt-password-hasher.example.d.ts +0 -3
- package/dist/examples/bcrypt-password-hasher.example.js +0 -78
- package/dist/examples/entity-object.example.d.ts +0 -39
- package/dist/examples/entity-object.example.js +0 -411
- package/dist/examples/factory-auth-service-example.d.ts +0 -3
- package/dist/examples/factory-auth-service-example.js +0 -84
- package/dist/examples/index.example.d.ts +0 -12
- package/dist/examples/index.example.js +0 -171
- package/dist/examples/jwt-algoritm.example.d.ts +0 -47
- package/dist/examples/jwt-algoritm.example.js +0 -447
- package/dist/examples/jwt-token-generator.example.d.ts +0 -6
- package/dist/examples/jwt-token-generator.example.js +0 -49
- package/dist/examples/jwt-verifier.example.d.ts +0 -3
- package/dist/examples/jwt-verifier.example.js +0 -80
- package/dist/examples/password-policy.example.d.ts +0 -7
- package/dist/examples/password-policy.example.js +0 -57
- package/dist/examples/service-jwt-token.example.d.ts +0 -3
- package/dist/examples/service-jwt-token.example.js +0 -154
- package/dist/examples/service-token-session.example.d.ts +0 -3
- package/dist/examples/service-token-session.example.js +0 -139
- package/dist/examples/use-case-login-with-password.example.d.ts +0 -6
- package/dist/examples/use-case-login-with-password.example.js +0 -105
- package/dist/examples/use-case-logout.example.d.ts +0 -7
- package/dist/examples/use-case-logout.example.js +0 -134
- package/dist/examples/use-case-refresh-token.example.d.ts +0 -11
- package/dist/examples/use-case-refresh-token.example.js +0 -164
- package/dist/examples/use-case-register-user.example.d.ts +0 -9
- package/dist/examples/use-case-register-user.example.js +0 -110
- package/dist/src/application/dtos/index.d.ts +0 -4
- package/dist/src/application/dtos/register-user.dto.d.ts +0 -16
- package/dist/src/application/factories/auth-service.factory.d.ts +0 -5
- package/dist/src/application/factories/auth-service.factory.js +0 -51
- package/dist/src/application/use-cases/register-user.use-case.d.ts +0 -10
- package/dist/src/domain/errors/auth-domain-error.d.ts +0 -82
- package/dist/src/domain/errors/auth-domain-error.js +0 -112
- package/dist/src/domain/ports/auth/password-policy-config.port.js +0 -10
- package/dist/src/domain/ports/config/auth-config.port.d.ts +0 -19
- package/dist/src/domain/ports/config/auth-config.port.js +0 -3
- package/dist/src/domain/ports/index.d.ts +0 -9
- package/dist/src/domain/ports/index.js +0 -25
- package/dist/src/domain/ports/jwt/factory/signature-strategy-factory.port.d.ts +0 -14
- package/dist/src/domain/ports/jwt/signature-strategy-factory.port.d.ts +0 -14
- package/dist/src/domain/ports/jwt/signature-strategy.d.ts +0 -30
- package/dist/src/domain/ports/jwt/signature-strategy.js +0 -4
- package/dist/src/domain/ports/jwt/signature-strategy.port.d.ts +0 -31
- package/dist/src/domain/ports/jwt/signature-strategy.port.js +0 -4
- package/dist/src/domain/ports/jwt/strategy/signature-strategy.port.d.ts +0 -31
- package/dist/src/domain/ports/jwt/strategy/signature-strategy.port.js +0 -4
- package/dist/src/domain/props/create-payload-props.port.d.ts +0 -0
- package/dist/src/domain/props/create-payload-props.port.js +0 -8
- package/dist/src/domain/props/jwt/create-payload.props.d.ts +0 -9
- package/dist/src/domain/props/jwt/generate-token.props.d.ts +0 -10
- package/dist/src/domain/props/jwt/generate-token.props.js +0 -2
- package/dist/src/domain/props/jwt/index.d.ts +0 -5
- package/dist/src/domain/props/jwt/index.js +0 -21
- package/dist/src/domain/props/jwt/jwt-subject.d.ts +0 -7
- package/dist/src/domain/props/jwt/jwt-subject.js +0 -2
- package/dist/src/domain/props/services/generate-access-token.props.d.ts +0 -8
- package/dist/src/domain/props/services/generate-refresh-token.props.d.ts +0 -8
- package/dist/src/domain/services/token.service.port.d.ts +0 -9
- package/dist/src/index.d.ts +0 -78
- package/dist/src/index.js +0 -94
- package/dist/src/infrastructure/index.d.ts +0 -5
- package/dist/src/infrastructure/index.js +0 -21
- package/dist/src/infrastructure/jwt/factory/index.d.ts +0 -1
- package/dist/src/infrastructure/jwt/factory/signature-strategy.factory.d.ts +0 -21
- package/dist/src/infrastructure/jwt/factory/signature-strategy.factory.js +0 -61
- package/dist/src/infrastructure/jwt/index.d.ts +0 -3
- package/dist/src/infrastructure/jwt/signature-strategy.factory.d.ts +0 -21
- package/dist/src/infrastructure/jwt/signature-strategy.factory.js +0 -61
- package/dist/src/infrastructure/jwt/strategies/ecdsa-signature-strategy.d.ts +0 -47
- package/dist/src/infrastructure/jwt/strategies/ecdsa-signature-strategy.js +0 -124
- package/dist/src/infrastructure/jwt/strategies/ecdsa-signature.strategy.d.ts +0 -47
- package/dist/src/infrastructure/jwt/strategies/ecdsa-signature.strategy.js +0 -124
- package/dist/src/infrastructure/jwt/strategies/hmac-signature-strategy.d.ts +0 -54
- package/dist/src/infrastructure/jwt/strategies/hmac-signature-strategy.js +0 -129
- package/dist/src/infrastructure/jwt/strategies/hmac-signature.strategy.d.ts +0 -54
- package/dist/src/infrastructure/jwt/strategies/hmac-signature.strategy.js +0 -129
- package/dist/src/infrastructure/jwt/strategies/index.d.ts +0 -3
- package/dist/src/infrastructure/jwt/strategies/index.js +0 -19
- package/dist/src/infrastructure/jwt/strategies/rsa-signature-strategy.d.ts +0 -47
- package/dist/src/infrastructure/jwt/strategies/rsa-signature-strategy.js +0 -124
- package/dist/src/infrastructure/jwt/strategies/rsa-signature.strategy.d.ts +0 -47
- package/dist/src/infrastructure/jwt/strategies/rsa-signature.strategy.js +0 -124
- package/dist/src/infrastructure/jwt/token/actions/jwt-token-generator.d.ts +0 -57
- package/dist/src/infrastructure/jwt/token/actions/jwt-token-generator.js +0 -123
- package/dist/src/infrastructure/jwt/token/actions/jwt-token-verifier.d.ts +0 -59
- package/dist/src/infrastructure/jwt/token/actions/jwt-token-verifier.js +0 -100
- package/dist/src/infrastructure/jwt/token/index.d.ts +0 -5
- package/dist/src/infrastructure/jwt/token/index.js +0 -21
- package/dist/src/infrastructure/jwt/token/jwt-signer.d.ts +0 -33
- package/dist/src/infrastructure/jwt/token/jwt-signer.js +0 -46
- package/dist/src/infrastructure/jwt/token/jwt-token-parser.d.ts +0 -29
- package/dist/src/infrastructure/jwt/token/jwt-token-parser.js +0 -57
- package/dist/src/infrastructure/jwt/token/jwt-token-validator.d.ts +0 -32
- package/dist/src/infrastructure/jwt/token/jwt-token-validator.js +0 -77
- package/dist/src/infrastructure/jwt/token/tools/jwt-signer.d.ts +0 -33
- package/dist/src/infrastructure/jwt/token/tools/jwt-signer.js +0 -46
- package/dist/src/infrastructure/jwt/token/tools/jwt-token-parser.d.ts +0 -30
- package/dist/src/infrastructure/jwt/token/tools/jwt-token-parser.js +0 -57
- package/dist/src/infrastructure/jwt/token/tools/jwt-token-validator.d.ts +0 -32
- package/dist/src/infrastructure/jwt/token/tools/jwt-token-validator.js +0 -77
- package/dist/src/infrastructure/repositories/index.d.ts +0 -1
- package/dist/src/infrastructure/repositories/test/in-memory-token-session.repository.d.ts +0 -67
- package/dist/src/infrastructure/repositories/test/in-memory-token-session.repository.js +0 -128
- package/dist/src/infrastructure/services/default-token-session.service.d.ts +0 -18
- package/dist/src/infrastructure/services/jwt-token.service.d.ts +0 -15
- package/dist/src/infrastructure/services/jwt-token.service.js +0 -44
- package/dist/src/infrastructure/services/simple-jwt-token.service.d.ts +0 -15
- package/dist/src/infrastructure/services/simple-jwt-token.service.js +0 -46
- package/dist/src/infrastructure/services/token-session.service.d.ts +0 -24
- package/dist/src/infrastructure/services/token-session.service.js +0 -131
- package/dist/src/infrastructure/types/auth-service-container.d.ts +0 -14
- package/dist/src/shared/constants/index.d.ts +0 -1
- package/dist/src/shared/constants/jwt-algorithms.d.ts +0 -17
- package/dist/src/shared/constants/jwt-algorithms.js +0 -23
- package/dist/src/shared/encoders/base64-url-encoder.d.ts +0 -29
- package/dist/src/shared/encoders/base64-url-encoder.js +0 -45
- package/dist/src/shared/encoders/index.d.ts +0 -1
- package/dist/src/shared/encoders/index.js +0 -17
- package/dist/src/shared/index.d.ts +0 -4
- package/dist/src/shared/index.js +0 -20
- package/dist/src/shared/types/index.d.ts +0 -1
- package/dist/src/shared/types/jwt.d.ts +0 -25
- package/dist/src/shared/types/jwt.js +0 -2
- package/dist/src/shared/types/jwt.types.d.ts +0 -39
- package/dist/src/shared/types/jwt.types.js +0 -2
- package/dist/tests/application/factory/auth-service-factory.spec.d.ts +0 -1
- package/dist/tests/application/factory/auth-service-factory.spec.js +0 -97
- package/dist/tests/application/use-cases/login-with-password.integration.spec.d.ts +0 -1
- package/dist/tests/application/use-cases/login-with-password.integration.spec.js +0 -140
- package/dist/tests/application/use-cases/logout-use-case.spec.d.ts +0 -1
- package/dist/tests/application/use-cases/logout-use-case.spec.js +0 -40
- package/dist/tests/application/use-cases/refresh-token-use-case.spec.d.ts +0 -1
- package/dist/tests/application/use-cases/refresh-token-use-case.spec.js +0 -116
- package/dist/tests/application/use-cases/register-user.usecase.spec.d.ts +0 -1
- package/dist/tests/application/use-cases/register-user.usecase.spec.js +0 -151
- package/dist/tests/domain/entities/credential.spec.d.ts +0 -1
- package/dist/tests/domain/entities/credential.spec.js +0 -93
- package/dist/tests/domain/entities/user.spec.d.ts +0 -1
- package/dist/tests/domain/entities/user.spec.js +0 -93
- package/dist/tests/domain/object-values/email.spec.d.ts +0 -1
- package/dist/tests/domain/object-values/email.spec.js +0 -77
- package/dist/tests/domain/object-values/hashed-password.spec.d.ts +0 -1
- package/dist/tests/domain/object-values/hashed-password.spec.js +0 -54
- package/dist/tests/domain/object-values/id.spec.d.ts +0 -1
- package/dist/tests/domain/object-values/id.spec.js +0 -48
- package/dist/tests/domain/object-values/permission.spec.d.ts +0 -1
- package/dist/tests/domain/object-values/permission.spec.js +0 -75
- package/dist/tests/domain/object-values/role.spec.d.ts +0 -1
- package/dist/tests/domain/object-values/role.spec.js +0 -139
- package/dist/tests/domain/services/default-password-policy.spec.d.ts +0 -1
- package/dist/tests/domain/services/default-password-policy.spec.js +0 -69
- package/dist/tests/doman/entities/credential.spec.d.ts +0 -1
- package/dist/tests/doman/entities/credential.spec.js +0 -93
- package/dist/tests/doman/entities/user.spec.d.ts +0 -1
- package/dist/tests/doman/entities/user.spec.js +0 -93
- package/dist/tests/doman/object-values/email.spec.d.ts +0 -1
- package/dist/tests/doman/object-values/email.spec.js +0 -77
- package/dist/tests/doman/object-values/hashed-password.spec.d.ts +0 -1
- package/dist/tests/doman/object-values/hashed-password.spec.js +0 -54
- package/dist/tests/doman/object-values/id.spec.d.ts +0 -1
- package/dist/tests/doman/object-values/id.spec.js +0 -48
- package/dist/tests/doman/object-values/permission.spec.d.ts +0 -1
- package/dist/tests/doman/object-values/permission.spec.js +0 -75
- package/dist/tests/doman/object-values/role.spec.d.ts +0 -1
- package/dist/tests/doman/object-values/role.spec.js +0 -139
- package/dist/tests/helpers/make-jwt-subject.d.ts +0 -7
- package/dist/tests/helpers/make-jwt-subject.js +0 -16
- package/dist/tests/helpers/make-jwt-user.d.ts +0 -7
- package/dist/tests/helpers/make-jwt-user.js +0 -16
- package/dist/tests/helpers/make-user.d.ts +0 -2
- package/dist/tests/helpers/make-user.js +0 -15
- package/dist/tests/infrastructure/jwt/signature-strategy-factory.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/signature-strategy-factory.spec.js +0 -127
- package/dist/tests/infrastructure/jwt/strategies/ecdsa-signature-strategy.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/strategies/ecdsa-signature-strategy.spec.js +0 -157
- package/dist/tests/infrastructure/jwt/strategies/hmac-signature-strategy.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/strategies/hmac-signature-strategy.spec.js +0 -150
- package/dist/tests/infrastructure/jwt/strategies/rsa-signature-strategy..spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/strategies/rsa-signature-strategy..spec.js +0 -156
- package/dist/tests/infrastructure/jwt/token/actions/jwt-token-generator.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/token/actions/jwt-token-generator.spec.js +0 -179
- package/dist/tests/infrastructure/jwt/token/actions/jwt-token-verifier.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/token/actions/jwt-token-verifier.spec.js +0 -142
- package/dist/tests/infrastructure/jwt/token/jwt-signer.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/token/jwt-signer.spec.js +0 -125
- package/dist/tests/infrastructure/jwt/token/jwt-token-parser.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/token/jwt-token-parser.spec.js +0 -116
- package/dist/tests/infrastructure/jwt/token/jwt-token-validator.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/token/jwt-token-validator.spec.js +0 -88
- package/dist/tests/infrastructure/jwt/token/tools/jwt-signer.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/token/tools/jwt-signer.spec.js +0 -126
- package/dist/tests/infrastructure/jwt/token/tools/jwt-token-parser.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/token/tools/jwt-token-parser.spec.js +0 -116
- package/dist/tests/infrastructure/jwt/token/tools/jwt-token-validator.spec.d.ts +0 -1
- package/dist/tests/infrastructure/jwt/token/tools/jwt-token-validator.spec.js +0 -88
- package/dist/tests/infrastructure/security/security/bcrypt-password-hasher.spec.d.ts +0 -1
- package/dist/tests/infrastructure/security/security/bcrypt-password-hasher.spec.js +0 -37
- package/dist/tests/infrastructure/services/jwt-token-service.spec.d.ts +0 -1
- package/dist/tests/infrastructure/services/jwt-token-service.spec.js +0 -145
- package/dist/tests/infrastructure/services/token-session.service.spec.d.ts +0 -1
- package/dist/tests/infrastructure/services/token-session.service.spec.js +0 -269
- package/dist/tests/shared/constants/jwt-algorithms.spec.d.ts +0 -1
- package/dist/tests/shared/constants/jwt-algorithms.spec.js +0 -27
- package/dist/tests/shared/encoders/base64-url-encoder.spec.d.ts +0 -1
- package/dist/tests/shared/encoders/base64-url-encoder.spec.js +0 -70
- package/dist/tests/shared/utils/time-parser.spec.d.ts +0 -1
- package/dist/tests/shared/utils/time-parser.spec.js +0 -80
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.js +0 -17
- package/dist/utils/time-parser.d.ts +0 -28
- package/dist/utils/time-parser.js +0 -76
- /package/dist/{src/application/dtos/login.dto.js → application/dtos/request/login.request.js} +0 -0
- /package/dist/{src/application/dtos/logout.dto.js → application/dtos/request/logout.request.js} +0 -0
- /package/dist/{src/application/dtos/refresh-token.dto.js → application/dtos/request/refresh-token.request.js} +0 -0
- /package/dist/{src/application/dtos/register-user.dto.js → application/dtos/request/register-user.request.js} +0 -0
- /package/dist/{src/domain/ports/auth/password-hasher.js → application/dtos/response/login.response.js} +0 -0
- /package/dist/{src/domain/ports/auth/password-policy.port.js → application/dtos/response/logout.response.js} +0 -0
- /package/dist/{src/domain/ports/jwt/factory/signature-strategy-factory.port.js → application/dtos/response/refresh-token.response.js} +0 -0
- /package/dist/{src/domain/ports/jwt/payload/jwt-payload.port.js → application/dtos/response/register-user.response.js} +0 -0
- /package/dist/{src/domain/ports/jwt/signature-strategy-factory.port.js → application/dtos/type/user-role.type.js} +0 -0
- /package/dist/{src/application → application}/factories/index.d.ts +0 -0
- /package/dist/{src/application → application}/factories/index.js +0 -0
- /package/dist/{src/domain/ports/repository/credential.repository.js → application/types/auth-service-factory-options.type.js} +0 -0
- /package/dist/{src/application → application}/use-cases/index.d.ts +0 -0
- /package/dist/{src/application → application}/use-cases/index.js +0 -0
- /package/dist/{src/domain → domain}/entities/credential.entity.d.ts +0 -0
- /package/dist/{src/domain → domain}/entities/credential.entity.js +0 -0
- /package/dist/{src/domain → domain}/entities/index.d.ts +0 -0
- /package/dist/{src/domain → domain}/entities/index.js +0 -0
- /package/dist/{src/domain → domain}/entities/user.entity.d.ts +0 -0
- /package/dist/{src/domain → domain}/entities/user.entity.js +0 -0
- /package/dist/{src/domain → domain}/errors/identity.errors.d.ts +0 -0
- /package/dist/{src/domain → domain}/errors/identity.errors.js +0 -0
- /package/dist/{src/domain → domain}/errors/index.d.ts +0 -0
- /package/dist/{src/domain → domain}/errors/index.js +0 -0
- /package/dist/{src/domain → domain}/object-values/email.d.ts +0 -0
- /package/dist/{src/domain → domain}/object-values/email.js +0 -0
- /package/dist/{src/domain → domain}/object-values/hashed-password.d.ts +0 -0
- /package/dist/{src/domain → domain}/object-values/hashed-password.js +0 -0
- /package/dist/{src/domain → domain}/object-values/id.d.ts +0 -0
- /package/dist/{src/domain → domain}/object-values/id.js +0 -0
- /package/dist/{src/domain → domain}/object-values/index.d.ts +0 -0
- /package/dist/{src/domain → domain}/object-values/index.js +0 -0
- /package/dist/{src/domain → domain}/object-values/permission.d.ts +0 -0
- /package/dist/{src/domain → domain}/object-values/permission.js +0 -0
- /package/dist/{src/domain → domain}/object-values/role.d.ts +0 -0
- /package/dist/{src/domain → domain}/object-values/role.js +0 -0
- /package/dist/{src/domain/ports/repository/user.repository.js → domain/ports/auth/password-hasher.port.js} +0 -0
- /package/dist/{src/domain/ports/token/token-session.port.js → domain/ports/auth/password-policy.port.js} +0 -0
- /package/dist/{src/domain → domain}/ports/jwt/payload/jwt-payload.port.d.ts +0 -0
- /package/dist/{src/domain/ports/token/token.service.port.js → domain/ports/jwt/payload/jwt-payload.port.js} +0 -0
- /package/dist/{src/domain/props/entities/credential.props.js → domain/ports/repository/credential.repository.js} +0 -0
- /package/dist/{src/domain/props/entities/user.props.js → domain/ports/repository/user-repository.port.js} +0 -0
- /package/dist/{src/domain/props/jwt/create-payload.props.js → domain/ports/token/token-session.port.js} +0 -0
- /package/dist/{src/domain/services → domain/ports/token}/token.service.port.js +0 -0
- /package/dist/{src/domain → domain}/props/entities/credential.props.d.ts +0 -0
- /package/dist/{src/domain/props/jwt/generate-access-token.props.js → domain/props/entities/credential.props.js} +0 -0
- /package/dist/{src/domain → domain}/props/entities/index.d.ts +0 -0
- /package/dist/{src/domain → domain}/props/entities/index.js +0 -0
- /package/dist/{src/domain → domain}/props/entities/user.props.d.ts +0 -0
- /package/dist/{src/domain/props/jwt/generate-refresh-token.props.js → domain/props/entities/user.props.js} +0 -0
- /package/dist/{src/domain → domain}/props/index.d.ts +0 -0
- /package/dist/{src/domain → domain}/props/index.js +0 -0
- /package/dist/{src/domain/props/services → domain/props/jwt}/generate-access-token.props.js +0 -0
- /package/dist/{src/domain/props/services → domain/props/jwt}/generate-refresh-token.props.js +0 -0
- /package/dist/{src/domain → domain}/props/jwt/jwt-user.d.ts +0 -0
- /package/dist/{src/domain → domain}/props/jwt/jwt-user.js +0 -0
- /package/dist/{src/domain → domain}/services/index.d.ts +0 -0
- /package/dist/{src/domain → domain}/services/index.js +0 -0
- /package/dist/{src/domain → domain}/services/password-policy.service.js +0 -0
- /package/dist/{src/infrastructure/repositories/test → in-memory}/in-memory-user.repository.js +0 -0
- /package/dist/{src/infrastructure/repositories/test → in-memory}/index.d.ts +0 -0
- /package/dist/{src/infrastructure/repositories/test → in-memory}/index.js +0 -0
- /package/dist/{src/domain/ports/auth/password-policy-config.port.d.ts → infrastructure/index.d.ts} +0 -0
- /package/dist/{src/infrastructure → infrastructure}/security/index.d.ts +0 -0
- /package/dist/{src/infrastructure → infrastructure}/security/index.js +0 -0
- /package/dist/{src/infrastructure → infrastructure}/types/auth-service-container.js +0 -0
- /package/dist/{src/infrastructure → infrastructure}/types/index.d.ts +0 -0
- /package/dist/{src/infrastructure → infrastructure}/types/index.js +0 -0
- /package/dist/{src/shared → shared}/utils/index.d.ts +0 -0
- /package/dist/{src/shared → shared}/utils/index.js +0 -0
- /package/dist/{src/shared → shared}/utils/time-parser.d.ts +0 -0
- /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,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;
|