@drax/identity-back 3.14.0 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/config/PasswordPolicyConfig.js +14 -0
  2. package/dist/controllers/UserController.js +10 -0
  3. package/dist/factory/PasswordPolicyResolverFactory.js +9 -0
  4. package/dist/factory/PasswordPolicyServiceFactory.js +27 -0
  5. package/dist/factory/UserPasswordHistoryServiceFactory.js +25 -0
  6. package/dist/factory/UserServiceFactory.js +3 -1
  7. package/dist/index.js +20 -8
  8. package/dist/interfaces/IUserPasswordHistory.js +1 -0
  9. package/dist/interfaces/IUserPasswordHistoryRepository.js +1 -0
  10. package/dist/models/UserPasswordHistoryModel.js +30 -0
  11. package/dist/policies/defaultPasswordPolicy.js +12 -0
  12. package/dist/repository/mongo/UserPasswordHistoryMongoRepository.js +20 -0
  13. package/dist/repository/sqlite/UserPasswordHistorySqliteRepository.js +38 -0
  14. package/dist/resolver/PasswordPolicyResolver.js +27 -0
  15. package/dist/routes/UserRoutes.js +10 -0
  16. package/dist/schemas/PasswordPolicySchema.js +18 -0
  17. package/dist/schemas/RegisterSchema.js +1 -3
  18. package/dist/schemas/UserSchema.js +1 -3
  19. package/dist/security/constants/defaultPasswordPolicy.js +12 -0
  20. package/dist/security/interfaces/IPasswordPolicy.js +1 -0
  21. package/dist/security/interfaces/IPasswordPolicyProjectContext.js +1 -0
  22. package/dist/security/schemas/PasswordPolicySchema.js +18 -0
  23. package/dist/security/services/PasswordPolicyResolver.js +21 -0
  24. package/dist/security/services/PasswordPolicyService.js +147 -0
  25. package/dist/security/utils/PasswordPolicySchemaFactory.js +36 -0
  26. package/dist/security/utils/getPasswordEnvPolicy.js +19 -0
  27. package/dist/services/PasswordPolicyService.js +147 -0
  28. package/dist/services/UserPasswordHistoryService.js +18 -0
  29. package/dist/services/UserService.js +34 -9
  30. package/dist/setup/LoadIdentityConfigFromEnv.js +10 -0
  31. package/dist/setup/SetProjectPasswordPolicy.js +7 -0
  32. package/dist/utils/PasswordPolicySchemaFactory.js +36 -0
  33. package/dist/utils/getPasswordEnvPolicy.js +19 -0
  34. package/docs/password-policy.md +33 -0
  35. package/package.json +4 -4
  36. package/src/config/PasswordPolicyConfig.ts +14 -0
  37. package/src/controllers/UserController.ts +10 -1
  38. package/src/factory/PasswordPolicyResolverFactory.ts +14 -0
  39. package/src/factory/PasswordPolicyServiceFactory.ts +38 -0
  40. package/src/factory/UserPasswordHistoryServiceFactory.ts +31 -0
  41. package/src/factory/UserServiceFactory.ts +7 -1
  42. package/src/index.ts +28 -3
  43. package/src/interfaces/IUserPasswordHistory.ts +21 -0
  44. package/src/interfaces/IUserPasswordHistoryRepository.ts +8 -0
  45. package/src/models/UserPasswordHistoryModel.ts +42 -0
  46. package/src/policies/defaultPasswordPolicy.ts +17 -0
  47. package/src/repository/mongo/UserPasswordHistoryMongoRepository.ts +25 -0
  48. package/src/repository/sqlite/UserPasswordHistorySqliteRepository.ts +47 -0
  49. package/src/resolver/PasswordPolicyResolver.ts +33 -0
  50. package/src/routes/UserRoutes.ts +11 -0
  51. package/src/schemas/PasswordPolicySchema.ts +29 -0
  52. package/src/schemas/RegisterSchema.ts +1 -3
  53. package/src/schemas/UserSchema.ts +1 -3
  54. package/src/services/PasswordPolicyService.ts +184 -0
  55. package/src/services/UserPasswordHistoryService.ts +23 -0
  56. package/src/services/UserService.ts +38 -9
  57. package/src/setup/LoadIdentityConfigFromEnv.ts +11 -0
  58. package/src/setup/SetProjectPasswordPolicy.ts +12 -0
  59. package/src/utils/PasswordPolicySchemaFactory.ts +47 -0
  60. package/src/utils/getPasswordEnvPolicy.ts +25 -0
  61. package/test/data-obj/users/root-mongo-user.ts +1 -1
  62. package/test/data-obj/users/root-sqlite-user.ts +1 -1
  63. package/test/endpoints/data/users-data.ts +3 -3
  64. package/test/endpoints/password-policy-route.test.ts +33 -0
  65. package/test/endpoints/user-route.test.ts +17 -4
  66. package/test/security/password-policy-resolver.test.ts +55 -0
  67. package/test/security/password-policy-schema-factory.test.ts +40 -0
  68. package/test/services/user-service.test.ts +218 -31
  69. package/test/setup/TestSetup.ts +22 -4
  70. package/test/setup/data/basic-user.ts +1 -1
  71. package/test/setup/data/root-user.ts +1 -1
  72. package/tsconfig.tsbuildinfo +1 -1
  73. package/types/config/PasswordPolicyConfig.d.ts +14 -0
  74. package/types/config/PasswordPolicyConfig.d.ts.map +1 -0
  75. package/types/controllers/UserController.d.ts +1 -0
  76. package/types/controllers/UserController.d.ts.map +1 -1
  77. package/types/factory/PasswordPolicyResolverFactory.d.ts +4 -0
  78. package/types/factory/PasswordPolicyResolverFactory.d.ts.map +1 -0
  79. package/types/factory/PasswordPolicyServiceFactory.d.ts +4 -0
  80. package/types/factory/PasswordPolicyServiceFactory.d.ts.map +1 -0
  81. package/types/factory/UserPasswordHistoryServiceFactory.d.ts +4 -0
  82. package/types/factory/UserPasswordHistoryServiceFactory.d.ts.map +1 -0
  83. package/types/factory/UserServiceFactory.d.ts.map +1 -1
  84. package/types/index.d.ts +15 -2
  85. package/types/index.d.ts.map +1 -1
  86. package/types/interfaces/IUserPasswordHistory.d.ts +17 -0
  87. package/types/interfaces/IUserPasswordHistory.d.ts.map +1 -0
  88. package/types/interfaces/IUserPasswordHistoryRepository.d.ts +7 -0
  89. package/types/interfaces/IUserPasswordHistoryRepository.d.ts.map +1 -0
  90. package/types/models/UserPasswordHistoryModel.d.ts +15 -0
  91. package/types/models/UserPasswordHistoryModel.d.ts.map +1 -0
  92. package/types/policies/defaultPasswordPolicy.d.ts +4 -0
  93. package/types/policies/defaultPasswordPolicy.d.ts.map +1 -0
  94. package/types/repository/mongo/UserPasswordHistoryMongoRepository.d.ts +10 -0
  95. package/types/repository/mongo/UserPasswordHistoryMongoRepository.d.ts.map +1 -0
  96. package/types/repository/sqlite/UserPasswordHistorySqliteRepository.d.ts +25 -0
  97. package/types/repository/sqlite/UserPasswordHistorySqliteRepository.d.ts.map +1 -0
  98. package/types/resolver/PasswordPolicyResolver.d.ts +10 -0
  99. package/types/resolver/PasswordPolicyResolver.d.ts.map +1 -0
  100. package/types/routes/UserRoutes.d.ts.map +1 -1
  101. package/types/schemas/PasswordPolicySchema.d.ts +25 -0
  102. package/types/schemas/PasswordPolicySchema.d.ts.map +1 -0
  103. package/types/schemas/RegisterSchema.d.ts.map +1 -1
  104. package/types/schemas/UserSchema.d.ts.map +1 -1
  105. package/types/security/constants/defaultPasswordPolicy.d.ts +4 -0
  106. package/types/security/constants/defaultPasswordPolicy.d.ts.map +1 -0
  107. package/types/security/interfaces/IPasswordPolicy.d.ts +13 -0
  108. package/types/security/interfaces/IPasswordPolicy.d.ts.map +1 -0
  109. package/types/security/interfaces/IPasswordPolicyProjectContext.d.ts +6 -0
  110. package/types/security/interfaces/IPasswordPolicyProjectContext.d.ts.map +1 -0
  111. package/types/security/schemas/PasswordPolicySchema.d.ts +25 -0
  112. package/types/security/schemas/PasswordPolicySchema.d.ts.map +1 -0
  113. package/types/security/services/PasswordPolicyResolver.d.ts +9 -0
  114. package/types/security/services/PasswordPolicyResolver.d.ts.map +1 -0
  115. package/types/security/services/PasswordPolicyService.d.ts +35 -0
  116. package/types/security/services/PasswordPolicyService.d.ts.map +1 -0
  117. package/types/security/utils/PasswordPolicySchemaFactory.d.ts +9 -0
  118. package/types/security/utils/PasswordPolicySchemaFactory.d.ts.map +1 -0
  119. package/types/security/utils/getPasswordEnvPolicy.d.ts +5 -0
  120. package/types/security/utils/getPasswordEnvPolicy.d.ts.map +1 -0
  121. package/types/services/PasswordPolicyService.d.ts +34 -0
  122. package/types/services/PasswordPolicyService.d.ts.map +1 -0
  123. package/types/services/UserPasswordHistoryService.d.ts +10 -0
  124. package/types/services/UserPasswordHistoryService.d.ts.map +1 -0
  125. package/types/services/UserService.d.ts +5 -1
  126. package/types/services/UserService.d.ts.map +1 -1
  127. package/types/setup/LoadIdentityConfigFromEnv.d.ts.map +1 -1
  128. package/types/setup/SetProjectPasswordPolicy.d.ts +5 -0
  129. package/types/setup/SetProjectPasswordPolicy.d.ts.map +1 -0
  130. package/types/utils/PasswordPolicySchemaFactory.d.ts +9 -0
  131. package/types/utils/PasswordPolicySchemaFactory.d.ts.map +1 -0
  132. package/types/utils/getPasswordEnvPolicy.d.ts +5 -0
  133. package/types/utils/getPasswordEnvPolicy.d.ts.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"UserService.d.ts","sourceRoot":"","sources":["../../src/services/UserService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,KAAK,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAOnE,OAAO,EAAC,oBAAoB,EAAE,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAKhD,cAAM,WAAY,SAAQ,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC;IAEtE,WAAW,EAAE,eAAe,CAAA;gBAEhB,cAAc,EAAE,eAAe;IAKrC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAC,SAAS,EAAE,EAAE,EAAC;;;KAAA;;;;;YA+BhD,eAAe;IAYvB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;;;IAKtE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAC,SAAS,EAAE,EAAE,EAAC;;;KAAA;;;IAiCpG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC;IAatE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAsB/F,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC;IAU3D,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB5C,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAiBnF,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAuB/C,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAahD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAahD,MAAM,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAsB7C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW;IAqBxC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAWpC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAWvD,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAWnE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAUjD,QAAQ,CAAC,EACI,IAAQ,EACR,KAAU,EACV,OAAY,EACZ,KAAa,EACb,MAAW,EACX,OAAY,EACf,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAWtE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAE,MAAa,EAAE,OAAO,QAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAIjF;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"UserService.d.ts","sourceRoot":"","sources":["../../src/services/UserService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LoadIdentityConfigFromEnv.d.ts","sourceRoot":"","sources":["../../src/setup/LoadIdentityConfigFromEnv.ts"],"names":[],"mappings":"AAGA,iBAAS,yBAAyB,SASjC;AAED,eAAe,yBAAyB,CAAA;AACxC,OAAO,EACH,yBAAyB,EAC5B,CAAA"}
1
+ {"version":3,"file":"LoadIdentityConfigFromEnv.d.ts","sourceRoot":"","sources":["../../src/setup/LoadIdentityConfigFromEnv.ts"],"names":[],"mappings":"AAIA,iBAAS,yBAAyB,SAmBjC;AAED,eAAe,yBAAyB,CAAA;AACxC,OAAO,EACH,yBAAyB,EAC5B,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { IPasswordPolicyProject } from "@drax/identity-share";
2
+ declare function SetProjectPasswordPolicy(projectPasswordPolicy: IPasswordPolicyProject): void;
3
+ export default SetProjectPasswordPolicy;
4
+ export { SetProjectPasswordPolicy };
5
+ //# sourceMappingURL=SetProjectPasswordPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetProjectPasswordPolicy.d.ts","sourceRoot":"","sources":["../../src/setup/SetProjectPasswordPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAIjE,iBAAS,wBAAwB,CAAC,qBAAqB,EAAE,sBAAsB,QAI9E;AAED,eAAe,wBAAwB,CAAA;AACvC,OAAO,EAAC,wBAAwB,EAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import z from "zod";
2
+ import type { IPasswordPolicy } from "@drax/identity-share";
3
+ declare class PasswordPolicySchemaFactory {
4
+ private static cache;
5
+ static create(policy: IPasswordPolicy): z.ZodType<string>;
6
+ }
7
+ export default PasswordPolicySchemaFactory;
8
+ export { PasswordPolicySchemaFactory };
9
+ //# sourceMappingURL=PasswordPolicySchemaFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordPolicySchemaFactory.d.ts","sourceRoot":"","sources":["../../src/utils/PasswordPolicySchemaFactory.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAE1D,cAAM,2BAA2B;IAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAuC;IAE3D,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CAqC5D;AAED,eAAe,2BAA2B,CAAA;AAC1C,OAAO,EAAC,2BAA2B,EAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { IPasswordPolicy } from "@drax/identity-share";
2
+ declare function getPasswordEnvPolicy(): Partial<IPasswordPolicy>;
3
+ export default getPasswordEnvPolicy;
4
+ export { getPasswordEnvPolicy };
5
+ //# sourceMappingURL=getPasswordEnvPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPasswordEnvPolicy.d.ts","sourceRoot":"","sources":["../../src/utils/getPasswordEnvPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAK1D,iBAAS,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC,CAgBxD;AAED,eAAe,oBAAoB,CAAA;AACnC,OAAO,EAAC,oBAAoB,EAAC,CAAA"}