@drax/identity-back 3.13.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.
- package/dist/config/PasswordPolicyConfig.js +14 -0
- package/dist/controllers/UserApiKeyController.js +8 -119
- package/dist/controllers/UserController.js +10 -0
- package/dist/factory/PasswordPolicyResolverFactory.js +9 -0
- package/dist/factory/PasswordPolicyServiceFactory.js +27 -0
- package/dist/factory/UserPasswordHistoryServiceFactory.js +25 -0
- package/dist/factory/UserServiceFactory.js +3 -1
- package/dist/graphql/resolvers/user-api-key.resolvers.js +2 -3
- package/dist/index.js +20 -8
- package/dist/interfaces/IUserPasswordHistory.js +1 -0
- package/dist/interfaces/IUserPasswordHistoryRepository.js +1 -0
- package/dist/middleware/apiKeyMiddleware.js +1 -1
- package/dist/middleware/rbacMiddleware.js +1 -1
- package/dist/models/UserPasswordHistoryModel.js +30 -0
- package/dist/permissions/UserApiKeyPermissions.js +1 -2
- package/dist/policies/defaultPasswordPolicy.js +12 -0
- package/dist/repository/mongo/UserPasswordHistoryMongoRepository.js +20 -0
- package/dist/repository/sqlite/UserPasswordHistorySqliteRepository.js +38 -0
- package/dist/resolver/PasswordPolicyResolver.js +27 -0
- package/dist/routes/UserRoutes.js +10 -0
- package/dist/schemas/PasswordPolicySchema.js +18 -0
- package/dist/schemas/RegisterSchema.js +1 -3
- package/dist/schemas/UserSchema.js +1 -3
- package/dist/security/constants/defaultPasswordPolicy.js +12 -0
- package/dist/security/interfaces/IPasswordPolicy.js +1 -0
- package/dist/security/interfaces/IPasswordPolicyProjectContext.js +1 -0
- package/dist/security/schemas/PasswordPolicySchema.js +18 -0
- package/dist/security/services/PasswordPolicyResolver.js +21 -0
- package/dist/security/services/PasswordPolicyService.js +147 -0
- package/dist/security/utils/PasswordPolicySchemaFactory.js +36 -0
- package/dist/security/utils/getPasswordEnvPolicy.js +19 -0
- package/dist/services/PasswordPolicyService.js +147 -0
- package/dist/services/UserPasswordHistoryService.js +18 -0
- package/dist/services/UserService.js +34 -9
- package/dist/setup/LoadIdentityConfigFromEnv.js +10 -0
- package/dist/setup/SetProjectPasswordPolicy.js +7 -0
- package/dist/utils/PasswordPolicySchemaFactory.js +36 -0
- package/dist/utils/getPasswordEnvPolicy.js +19 -0
- package/docs/password-policy.md +33 -0
- package/package.json +6 -6
- package/src/config/PasswordPolicyConfig.ts +14 -0
- package/src/controllers/UserApiKeyController.ts +15 -129
- package/src/controllers/UserController.ts +10 -1
- package/src/factory/PasswordPolicyResolverFactory.ts +14 -0
- package/src/factory/PasswordPolicyServiceFactory.ts +38 -0
- package/src/factory/UserPasswordHistoryServiceFactory.ts +31 -0
- package/src/factory/UserServiceFactory.ts +7 -1
- package/src/graphql/resolvers/user-api-key.resolvers.ts +2 -3
- package/src/index.ts +28 -3
- package/src/interfaces/IUserPasswordHistory.ts +21 -0
- package/src/interfaces/IUserPasswordHistoryRepository.ts +8 -0
- package/src/middleware/apiKeyMiddleware.ts +1 -1
- package/src/middleware/rbacMiddleware.ts +1 -1
- package/src/models/UserPasswordHistoryModel.ts +42 -0
- package/src/permissions/UserApiKeyPermissions.ts +1 -2
- package/src/policies/defaultPasswordPolicy.ts +17 -0
- package/src/repository/mongo/UserPasswordHistoryMongoRepository.ts +25 -0
- package/src/repository/sqlite/UserPasswordHistorySqliteRepository.ts +47 -0
- package/src/resolver/PasswordPolicyResolver.ts +33 -0
- package/src/routes/UserRoutes.ts +11 -0
- package/src/schemas/PasswordPolicySchema.ts +29 -0
- package/src/schemas/RegisterSchema.ts +1 -3
- package/src/schemas/UserSchema.ts +1 -3
- package/src/services/PasswordPolicyService.ts +184 -0
- package/src/services/UserPasswordHistoryService.ts +23 -0
- package/src/services/UserService.ts +38 -9
- package/src/setup/LoadIdentityConfigFromEnv.ts +11 -0
- package/src/setup/SetProjectPasswordPolicy.ts +12 -0
- package/src/utils/PasswordPolicySchemaFactory.ts +47 -0
- package/src/utils/getPasswordEnvPolicy.ts +25 -0
- package/test/data-obj/users/root-mongo-user.ts +1 -1
- package/test/data-obj/users/root-sqlite-user.ts +1 -1
- package/test/endpoints/data/users-data.ts +3 -3
- package/test/endpoints/password-policy-route.test.ts +33 -0
- package/test/endpoints/user-route.test.ts +17 -4
- package/test/security/password-policy-resolver.test.ts +55 -0
- package/test/security/password-policy-schema-factory.test.ts +40 -0
- package/test/services/user-service.test.ts +218 -31
- package/test/setup/TestSetup.ts +22 -4
- package/test/setup/data/basic-user.ts +1 -1
- package/test/setup/data/root-user.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/types/config/PasswordPolicyConfig.d.ts +14 -0
- package/types/config/PasswordPolicyConfig.d.ts.map +1 -0
- package/types/controllers/UserApiKeyController.d.ts +10 -6
- package/types/controllers/UserApiKeyController.d.ts.map +1 -1
- package/types/controllers/UserController.d.ts +1 -0
- package/types/controllers/UserController.d.ts.map +1 -1
- package/types/factory/PasswordPolicyResolverFactory.d.ts +4 -0
- package/types/factory/PasswordPolicyResolverFactory.d.ts.map +1 -0
- package/types/factory/PasswordPolicyServiceFactory.d.ts +4 -0
- package/types/factory/PasswordPolicyServiceFactory.d.ts.map +1 -0
- package/types/factory/UserPasswordHistoryServiceFactory.d.ts +4 -0
- package/types/factory/UserPasswordHistoryServiceFactory.d.ts.map +1 -0
- package/types/factory/UserServiceFactory.d.ts.map +1 -1
- package/types/graphql/resolvers/user-api-key.resolvers.d.ts.map +1 -1
- package/types/index.d.ts +15 -2
- package/types/index.d.ts.map +1 -1
- package/types/interfaces/IUserPasswordHistory.d.ts +17 -0
- package/types/interfaces/IUserPasswordHistory.d.ts.map +1 -0
- package/types/interfaces/IUserPasswordHistoryRepository.d.ts +7 -0
- package/types/interfaces/IUserPasswordHistoryRepository.d.ts.map +1 -0
- package/types/models/UserPasswordHistoryModel.d.ts +15 -0
- package/types/models/UserPasswordHistoryModel.d.ts.map +1 -0
- package/types/permissions/UserApiKeyPermissions.d.ts +1 -2
- package/types/permissions/UserApiKeyPermissions.d.ts.map +1 -1
- package/types/permissions/index.d.ts +0 -2
- package/types/permissions/index.d.ts.map +1 -1
- package/types/policies/defaultPasswordPolicy.d.ts +4 -0
- package/types/policies/defaultPasswordPolicy.d.ts.map +1 -0
- package/types/repository/mongo/UserPasswordHistoryMongoRepository.d.ts +10 -0
- package/types/repository/mongo/UserPasswordHistoryMongoRepository.d.ts.map +1 -0
- package/types/repository/sqlite/UserPasswordHistorySqliteRepository.d.ts +25 -0
- package/types/repository/sqlite/UserPasswordHistorySqliteRepository.d.ts.map +1 -0
- package/types/resolver/PasswordPolicyResolver.d.ts +10 -0
- package/types/resolver/PasswordPolicyResolver.d.ts.map +1 -0
- package/types/routes/UserRoutes.d.ts.map +1 -1
- package/types/schemas/PasswordPolicySchema.d.ts +25 -0
- package/types/schemas/PasswordPolicySchema.d.ts.map +1 -0
- package/types/schemas/RegisterSchema.d.ts.map +1 -1
- package/types/schemas/UserSchema.d.ts.map +1 -1
- package/types/security/constants/defaultPasswordPolicy.d.ts +4 -0
- package/types/security/constants/defaultPasswordPolicy.d.ts.map +1 -0
- package/types/security/interfaces/IPasswordPolicy.d.ts +13 -0
- package/types/security/interfaces/IPasswordPolicy.d.ts.map +1 -0
- package/types/security/interfaces/IPasswordPolicyProjectContext.d.ts +6 -0
- package/types/security/interfaces/IPasswordPolicyProjectContext.d.ts.map +1 -0
- package/types/security/schemas/PasswordPolicySchema.d.ts +25 -0
- package/types/security/schemas/PasswordPolicySchema.d.ts.map +1 -0
- package/types/security/services/PasswordPolicyResolver.d.ts +9 -0
- package/types/security/services/PasswordPolicyResolver.d.ts.map +1 -0
- package/types/security/services/PasswordPolicyService.d.ts +35 -0
- package/types/security/services/PasswordPolicyService.d.ts.map +1 -0
- package/types/security/utils/PasswordPolicySchemaFactory.d.ts +9 -0
- package/types/security/utils/PasswordPolicySchemaFactory.d.ts.map +1 -0
- package/types/security/utils/getPasswordEnvPolicy.d.ts +5 -0
- package/types/security/utils/getPasswordEnvPolicy.d.ts.map +1 -0
- package/types/services/PasswordPolicyService.d.ts +34 -0
- package/types/services/PasswordPolicyService.d.ts.map +1 -0
- package/types/services/UserPasswordHistoryService.d.ts +10 -0
- package/types/services/UserPasswordHistoryService.d.ts.map +1 -0
- package/types/services/UserService.d.ts +5 -1
- package/types/services/UserService.d.ts.map +1 -1
- package/types/setup/LoadIdentityConfigFromEnv.d.ts.map +1 -1
- package/types/setup/SetProjectPasswordPolicy.d.ts +5 -0
- package/types/setup/SetProjectPasswordPolicy.d.ts.map +1 -0
- package/types/utils/PasswordPolicySchemaFactory.d.ts +9 -0
- package/types/utils/PasswordPolicySchemaFactory.d.ts.map +1 -0
- package/types/utils/getPasswordEnvPolicy.d.ts +5 -0
- package/types/utils/getPasswordEnvPolicy.d.ts.map +1 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare enum PasswordPolicyConfig {
|
|
2
|
+
MinLength = "PASSWORD_POLICY_MIN_LENGTH",
|
|
3
|
+
MaxLength = "PASSWORD_POLICY_MAX_LENGTH",
|
|
4
|
+
RequireUppercase = "PASSWORD_POLICY_REQUIRE_UPPERCASE",
|
|
5
|
+
RequireLowercase = "PASSWORD_POLICY_REQUIRE_LOWERCASE",
|
|
6
|
+
RequireNumber = "PASSWORD_POLICY_REQUIRE_NUMBER",
|
|
7
|
+
RequireSpecialChar = "PASSWORD_POLICY_REQUIRE_SPECIAL_CHAR",
|
|
8
|
+
DisallowSpaces = "PASSWORD_POLICY_DISALLOW_SPACES",
|
|
9
|
+
PreventReuse = "PASSWORD_POLICY_PREVENT_REUSE",
|
|
10
|
+
ExpirationDays = "PASSWORD_POLICY_EXPIRATION_DAYS"
|
|
11
|
+
}
|
|
12
|
+
export default PasswordPolicyConfig;
|
|
13
|
+
export { PasswordPolicyConfig };
|
|
14
|
+
//# sourceMappingURL=PasswordPolicyConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordPolicyConfig.d.ts","sourceRoot":"","sources":["../../src/config/PasswordPolicyConfig.ts"],"names":[],"mappings":"AAAA,aAAK,oBAAoB;IACrB,SAAS,+BAA+B;IACxC,SAAS,+BAA+B;IACxC,gBAAgB,sCAAsC;IACtD,gBAAgB,sCAAsC;IACtD,aAAa,mCAAmC;IAChD,kBAAkB,yCAAyC;IAC3D,cAAc,oCAAoC;IAClD,YAAY,kCAAkC;IAC9C,cAAc,oCAAoC;CACrD;AAED,eAAe,oBAAoB,CAAC;AACpC,OAAO,EAAC,oBAAoB,EAAC,CAAC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type { IUserApiKey, IUserApiKeyBase } from "@drax/identity-share";
|
|
2
|
-
import { AbstractFastifyController } from "@drax/crud-back";
|
|
2
|
+
import { AbstractFastifyController, CustomRequest } from "@drax/crud-back";
|
|
3
3
|
import UserApiKeyService from "../services/UserApiKeyService.js";
|
|
4
|
-
|
|
4
|
+
type UserApiKeyPayload = IUserApiKeyBase & {
|
|
5
|
+
user?: string;
|
|
6
|
+
};
|
|
7
|
+
declare class UserApiKeyController extends AbstractFastifyController<IUserApiKey, UserApiKeyPayload, UserApiKeyPayload> {
|
|
5
8
|
protected service: UserApiKeyService;
|
|
9
|
+
protected userField: string;
|
|
10
|
+
protected userFilter: boolean;
|
|
11
|
+
protected userSetter: boolean;
|
|
12
|
+
protected userAssert: boolean;
|
|
6
13
|
constructor();
|
|
7
|
-
|
|
8
|
-
create(request: any, reply: any): Promise<IUserApiKey>;
|
|
9
|
-
update(request: any, reply: any): Promise<IUserApiKey>;
|
|
10
|
-
delete(request: any, reply: any): Promise<void>;
|
|
14
|
+
preCreate(request: CustomRequest, payload: UserApiKeyPayload): Promise<UserApiKeyPayload>;
|
|
11
15
|
}
|
|
12
16
|
export default UserApiKeyController;
|
|
13
17
|
export { UserApiKeyController };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserApiKeyController.d.ts","sourceRoot":"","sources":["../../src/controllers/UserApiKeyController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAC,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"UserApiKeyController.d.ts","sourceRoot":"","sources":["../../src/controllers/UserApiKeyController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAC,yBAAyB,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAGzE,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAGjE,KAAK,iBAAiB,GAAG,eAAe,GAAG;IACvC,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,cAAM,oBAAqB,SAAQ,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;IAE3G,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAA;IAEpC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAS;IACpC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAO;IACpC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAO;IACpC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAO;;IAM9B,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAKlG;AAED,eAAe,oBAAoB,CAAC;AACpC,OAAO,EACH,oBAAoB,EACvB,CAAA"}
|
|
@@ -9,6 +9,7 @@ declare class UserController extends AbstractFastifyController<IUser, IUserCreat
|
|
|
9
9
|
auth(request: any, reply: any): Promise<{
|
|
10
10
|
accessToken: any;
|
|
11
11
|
}>;
|
|
12
|
+
passwordPolicy(request: any, reply: any): Promise<import("@drax/identity-share").IPasswordPolicy>;
|
|
12
13
|
me(request: any, reply: any): Promise<IUser>;
|
|
13
14
|
onUserEvent(request: CustomRequest, action: string, resourceId?: string, detail?: string): Promise<void>;
|
|
14
15
|
switchTenant(request: any, reply: any): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserController.d.ts","sourceRoot":"","sources":["../../src/controllers/UserController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAC,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;AAY1D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAQrD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"UserController.d.ts","sourceRoot":"","sources":["../../src/controllers/UserController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAC,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;AAY1D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAQrD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAQnD,cAAM,cAAe,SAAQ,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC;IAEnF,SAAS,CAAC,OAAO,EAAE,WAAW,CAAA;;IASxB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;IAiCnE,IAAI,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;;;IAqBnB,cAAc,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IAS7B,EAAE,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IA4BjB,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa,EAAE,MAAM,GAAE,MAAa;IAepG,YAAY,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;;;IA4B3B,QAAQ,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IA0BvB,MAAM,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IAerB,QAAQ,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;;;;IAgDvB,WAAW,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IAc1B,WAAW,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IAU1B,MAAM,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IAoBrB,MAAM,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IAoBrB,MAAM,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IA4BrB,uBAAuB,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IAqCtC,wBAAwB,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;IA+BvC,gBAAgB,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;;;IAkB/B,cAAc,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;;;IAmB7B,YAAY,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;;;;;;IAoC3B,SAAS,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;CAcjC;AAED,eAAe,cAAc,CAAC;AAC9B,OAAO,EACH,cAAc,EACjB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordPolicyResolverFactory.d.ts","sourceRoot":"","sources":["../../src/factory/PasswordPolicyResolverFactory.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAI3E,QAAA,MAAM,6BAA6B,QAAO,sBAOzC,CAAA;AAED,eAAe,6BAA6B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordPolicyServiceFactory.d.ts","sourceRoot":"","sources":["../../src/factory/PasswordPolicyServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AAUzE,QAAA,MAAM,4BAA4B,GAAI,UAAS,OAAe,KAAG,qBAyBhE,CAAA;AAED,eAAe,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import UserPasswordHistoryService from "../services/UserPasswordHistoryService.js";
|
|
2
|
+
declare const UserPasswordHistoryServiceFactory: (verbose?: boolean) => UserPasswordHistoryService;
|
|
3
|
+
export default UserPasswordHistoryServiceFactory;
|
|
4
|
+
//# sourceMappingURL=UserPasswordHistoryServiceFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserPasswordHistoryServiceFactory.d.ts","sourceRoot":"","sources":["../../src/factory/UserPasswordHistoryServiceFactory.ts"],"names":[],"mappings":"AAIA,OAAO,0BAA0B,MAAM,2CAA2C,CAAC;AAInF,QAAA,MAAM,iCAAiC,GAAI,UAAS,OAAe,KAAG,0BAoBrE,CAAA;AAED,eAAe,iCAAiC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserServiceFactory.d.ts","sourceRoot":"","sources":["../../src/factory/UserServiceFactory.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"UserServiceFactory.d.ts","sourceRoot":"","sources":["../../src/factory/UserServiceFactory.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,4BAA4B,CAAC;AASrD,QAAA,MAAM,kBAAkB,GAAI,UAAQ,OAAe,KAAI,WAwBtD,CAAA;AAEA,eAAe,kBAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-api-key.resolvers.d.ts","sourceRoot":"","sources":["../../../src/graphql/resolvers/user-api-key.resolvers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGtD,
|
|
1
|
+
{"version":3,"file":"user-api-key.resolvers.d.ts","sourceRoot":"","sources":["../../../src/graphql/resolvers/user-api-key.resolvers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGtD,wBAoFC"}
|
package/types/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import TenantServiceFactory from "./factory/TenantServiceFactory.js";
|
|
|
4
4
|
import UserApiKeyServiceFactory from "./factory/UserApiKeyServiceFactory.js";
|
|
5
5
|
import UserLoginFailServiceFactory from "./factory/UserLoginFailServiceFactory.js";
|
|
6
6
|
import UserSessionServiceFactory from "./factory/UserSessionServiceFactory.js";
|
|
7
|
+
import PasswordPolicyServiceFactory from "./factory/PasswordPolicyServiceFactory.js";
|
|
8
|
+
import UserPasswordHistoryServiceFactory from "./factory/UserPasswordHistoryServiceFactory.js";
|
|
7
9
|
import RoleService from "./services/RoleService.js";
|
|
8
10
|
import UserService from "./services/UserService.js";
|
|
9
11
|
import TenantService from "./services/TenantService.js";
|
|
@@ -11,6 +13,9 @@ import PermissionService from "./services/PermissionService.js";
|
|
|
11
13
|
import UserApiKeyService from "./services/UserApiKeyService.js";
|
|
12
14
|
import UserSessionService from "./services/UserSessionService.js";
|
|
13
15
|
import UserLoginFailService from "./services/UserLoginFailService.js";
|
|
16
|
+
import UserPasswordHistoryService from "./services/UserPasswordHistoryService.js";
|
|
17
|
+
import PasswordPolicyService from "./services/PasswordPolicyService.js";
|
|
18
|
+
import PasswordPolicyResolver from "./resolver/PasswordPolicyResolver.js";
|
|
14
19
|
import Rbac from "./rbac/Rbac.js";
|
|
15
20
|
import { UserRoutes } from "./routes/UserRoutes.js";
|
|
16
21
|
import { RoleRoutes } from "./routes/RoleRoutes.js";
|
|
@@ -23,6 +28,7 @@ import { jwtMiddleware } from "./middleware/jwtMiddleware.js";
|
|
|
23
28
|
import { rbacMiddleware } from "./middleware/rbacMiddleware.js";
|
|
24
29
|
import { apiKeyMiddleware } from "./middleware/apiKeyMiddleware.js";
|
|
25
30
|
import IdentityConfig from "./config/IdentityConfig.js";
|
|
31
|
+
import PasswordPolicyConfig from "./config/PasswordPolicyConfig.js";
|
|
26
32
|
import BadCredentialsError from "./errors/BadCredentialsError.js";
|
|
27
33
|
import CreateUserIfNotExist from "./setup/CreateUserIfNotExist.js";
|
|
28
34
|
import CreateTenantIfNotExist from "./setup/CreateTenantIfNotExist.js";
|
|
@@ -30,30 +36,35 @@ import CreateOrUpdateRole from "./setup/CreateOrUpdateRole.js";
|
|
|
30
36
|
import LoadPermissions from "./setup/LoadPermissions.js";
|
|
31
37
|
import LoadIdentityConfigFromEnv from "./setup/LoadIdentityConfigFromEnv.js";
|
|
32
38
|
import RecoveryUserPassword from "./setup/RecoveryUserPassword.js";
|
|
39
|
+
import SetProjectPasswordPolicy from "./setup/SetProjectPasswordPolicy.js";
|
|
33
40
|
import type { IRoleRepository } from "./interfaces/IRoleRepository";
|
|
34
41
|
import type { ITenantRepository } from "./interfaces/ITenantRepository";
|
|
35
42
|
import type { IUserRepository } from "./interfaces/IUserRepository";
|
|
36
43
|
import type { IUserApiKeyRepository } from "./interfaces/IUserApiKeyRepository";
|
|
37
44
|
import type { IUserLoginFailRepository } from "./interfaces/IUserLoginFailRepository";
|
|
38
45
|
import type { IUserSessionRepository } from "./interfaces/IUserSessionRepository";
|
|
46
|
+
import type { IUserPasswordHistoryRepository } from "./interfaces/IUserPasswordHistoryRepository";
|
|
39
47
|
import { RoleModel, RoleMongoSchema } from "./models/RoleModel.js";
|
|
40
48
|
import { TenantModel, TenantMongoSchema } from "./models/TenantModel.js";
|
|
41
49
|
import { UserModel, UserMongoSchema } from "./models/UserModel.js";
|
|
42
50
|
import { UserApiKeyModel, UserApiKeyMongoSchema } from "./models/UserApiKeyModel.js";
|
|
43
51
|
import { UserSessionModel, UserSessionMongoSchema } from "./models/UserSessionModel.js";
|
|
44
52
|
import { UserLoginFailModel, UserLoginFailMongoSchema } from "./models/UserLoginFailModel.js";
|
|
53
|
+
import { UserPasswordHistoryModel, UserPasswordHistoryMongoSchema } from "./models/UserPasswordHistoryModel.js";
|
|
45
54
|
import RoleMongoRepository from "./repository/mongo/RoleMongoRepository.js";
|
|
46
55
|
import TenantMongoRepository from "./repository/mongo/TenantMongoRepository.js";
|
|
47
56
|
import UserMongoRepository from "./repository/mongo/UserMongoRepository.js";
|
|
48
57
|
import UserApiKeyMongoRepository from "./repository/mongo/UserApiKeyMongoRepository.js";
|
|
49
58
|
import UserSessionMongoRepository from "./repository/mongo/UserSessionMongoRepository.js";
|
|
50
59
|
import UserLoginFailMongoRepository from "./repository/mongo/UserLoginFailMongoRepository.js";
|
|
60
|
+
import UserPasswordHistoryMongoRepository from "./repository/mongo/UserPasswordHistoryMongoRepository.js";
|
|
51
61
|
import RoleSqliteRepository from "./repository/sqlite/RoleSqliteRepository.js";
|
|
52
62
|
import TenantSqliteRepository from "./repository/sqlite/TenantSqliteRepository.js";
|
|
53
63
|
import UserSqliteRepository from "./repository/sqlite/UserSqliteRepository.js";
|
|
54
64
|
import UserApiKeySqliteRepository from "./repository/sqlite/UserApiKeySqliteRepository.js";
|
|
55
65
|
import UserLoginFailSqliteRepository from "./repository/sqlite/UserLoginFailSqliteRepository.js";
|
|
56
66
|
import UserSessionSqliteRepository from "./repository/sqlite/UserSessionSqliteRepository.js";
|
|
67
|
+
import UserPasswordHistorySqliteRepository from "./repository/sqlite/UserPasswordHistorySqliteRepository.js";
|
|
57
68
|
import { RolePermissions } from "./permissions/RolePermissions.js";
|
|
58
69
|
import { TenantPermissions } from "./permissions/TenantPermissions.js";
|
|
59
70
|
import { UserPermissions } from "./permissions/UserPermissions.js";
|
|
@@ -66,8 +77,10 @@ import { RoleSchema, RoleBaseSchema } from "./schemas/RoleSchema.js";
|
|
|
66
77
|
import { UserApiKeySchema, UserApiKeyBaseSchema } from "./schemas/UserApiKeySchema.js";
|
|
67
78
|
import { UserLoginFailBaseSchema } from "./schemas/UserLoginFailSchema.js";
|
|
68
79
|
import { UserSessionBaseSchema } from "./schemas/UserSessionSchema.js";
|
|
80
|
+
import { defaultPasswordPolicy } from "./policies/defaultPasswordPolicy.js";
|
|
81
|
+
import { PasswordPolicySchema } from "./schemas/PasswordPolicySchema.js";
|
|
69
82
|
declare const identityTypeDefs: import("@graphql-tools/utils").TypeSource;
|
|
70
83
|
declare const identityResolvers: import("@graphql-tools/utils").IResolvers;
|
|
71
|
-
export type { IRoleRepository, ITenantRepository, IUserRepository, IUserApiKeyRepository, IUserLoginFailRepository, IUserSessionRepository, };
|
|
72
|
-
export { UserSchema, UserBaseSchema, TenantSchema, TenantBaseSchema, RoleSchema, RoleBaseSchema, UserApiKeyBaseSchema, UserApiKeySchema, UserLoginFailBaseSchema, UserSessionBaseSchema, UserService, RoleService, TenantService, UserApiKeyService, UserSessionService, UserLoginFailService, PermissionService, Rbac, UserServiceFactory, RoleServiceFactory, TenantServiceFactory, UserApiKeyServiceFactory, UserSessionServiceFactory, UserLoginFailServiceFactory, identityTypeDefs, identityResolvers, UserRoutes, RoleRoutes, TenantRoutes, UserApiKeyRoutes, UserSessionRoutes, UserLoginFailRoutes, AuthUtils, jwtMiddleware, rbacMiddleware, apiKeyMiddleware, RolePermissions, TenantPermissions, UserPermissions, UserApiKeyPermissions, UserSessionPermissions, UserLoginFailPermissions, RoleMongoRepository, TenantMongoRepository, UserMongoRepository, UserApiKeyMongoRepository, UserSessionMongoRepository, UserLoginFailMongoRepository, RoleModel, TenantModel, UserModel, UserApiKeyModel, UserSessionModel, UserLoginFailModel, RoleMongoSchema, TenantMongoSchema, UserMongoSchema, UserApiKeyMongoSchema, UserSessionMongoSchema, UserLoginFailMongoSchema, RoleSqliteRepository, TenantSqliteRepository, UserSqliteRepository, UserApiKeySqliteRepository, UserLoginFailSqliteRepository, UserSessionSqliteRepository, IdentityConfig, BadCredentialsError, LoadIdentityConfigFromEnv, LoadPermissions, CreateOrUpdateRole, CreateUserIfNotExist, CreateTenantIfNotExist, RecoveryUserPassword };
|
|
84
|
+
export type { IRoleRepository, ITenantRepository, IUserRepository, IUserApiKeyRepository, IUserLoginFailRepository, IUserSessionRepository, IUserPasswordHistoryRepository, };
|
|
85
|
+
export { UserSchema, UserBaseSchema, TenantSchema, TenantBaseSchema, RoleSchema, RoleBaseSchema, UserApiKeyBaseSchema, UserApiKeySchema, UserLoginFailBaseSchema, UserSessionBaseSchema, UserService, RoleService, TenantService, UserApiKeyService, UserSessionService, UserLoginFailService, UserPasswordHistoryService, PasswordPolicyService, PasswordPolicyResolver, PermissionService, Rbac, UserServiceFactory, RoleServiceFactory, TenantServiceFactory, UserApiKeyServiceFactory, UserSessionServiceFactory, UserLoginFailServiceFactory, UserPasswordHistoryServiceFactory, PasswordPolicyServiceFactory, identityTypeDefs, identityResolvers, UserRoutes, RoleRoutes, TenantRoutes, UserApiKeyRoutes, UserSessionRoutes, UserLoginFailRoutes, AuthUtils, jwtMiddleware, rbacMiddleware, apiKeyMiddleware, RolePermissions, TenantPermissions, UserPermissions, UserApiKeyPermissions, UserSessionPermissions, UserLoginFailPermissions, RoleMongoRepository, TenantMongoRepository, UserMongoRepository, UserApiKeyMongoRepository, UserSessionMongoRepository, UserLoginFailMongoRepository, UserPasswordHistoryMongoRepository, RoleModel, TenantModel, UserModel, UserApiKeyModel, UserSessionModel, UserLoginFailModel, UserPasswordHistoryModel, RoleMongoSchema, TenantMongoSchema, UserMongoSchema, UserApiKeyMongoSchema, UserSessionMongoSchema, UserLoginFailMongoSchema, UserPasswordHistoryMongoSchema, RoleSqliteRepository, TenantSqliteRepository, UserSqliteRepository, UserApiKeySqliteRepository, UserLoginFailSqliteRepository, UserSessionSqliteRepository, UserPasswordHistorySqliteRepository, IdentityConfig, PasswordPolicyConfig, BadCredentialsError, defaultPasswordPolicy, PasswordPolicySchema, LoadIdentityConfigFromEnv, LoadPermissions, CreateOrUpdateRole, CreateUserIfNotExist, CreateTenantIfNotExist, RecoveryUserPassword, SetProjectPasswordPolicy };
|
|
73
86
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,oBAAoB,MAAM,mCAAmC,CAAC;AACrE,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAC7E,OAAO,2BAA2B,MAAM,0CAA0C,CAAC;AACnF,OAAO,yBAAyB,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface IUserPasswordHistory {
|
|
2
|
+
_id?: string;
|
|
3
|
+
id?: string;
|
|
4
|
+
user: string;
|
|
5
|
+
passwordHash: string;
|
|
6
|
+
createdAt?: string | Date;
|
|
7
|
+
updatedAt?: string | Date;
|
|
8
|
+
}
|
|
9
|
+
interface IUserPasswordHistoryCreate {
|
|
10
|
+
_id?: string;
|
|
11
|
+
id?: string;
|
|
12
|
+
user: string;
|
|
13
|
+
passwordHash: string;
|
|
14
|
+
createdAt?: string | Date;
|
|
15
|
+
}
|
|
16
|
+
export type { IUserPasswordHistory, IUserPasswordHistoryCreate };
|
|
17
|
+
//# sourceMappingURL=IUserPasswordHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IUserPasswordHistory.d.ts","sourceRoot":"","sources":["../../src/interfaces/IUserPasswordHistory.ts"],"names":[],"mappings":"AAAA,UAAU,oBAAoB;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,UAAU,0BAA0B;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,YAAY,EACR,oBAAoB,EACpB,0BAA0B,EAC7B,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IUserPasswordHistory, IUserPasswordHistoryCreate } from "./IUserPasswordHistory.js";
|
|
2
|
+
interface IUserPasswordHistoryRepository {
|
|
3
|
+
create(data: IUserPasswordHistoryCreate): Promise<IUserPasswordHistory>;
|
|
4
|
+
findLatestByUserId(userId: string, limit: number): Promise<IUserPasswordHistory[]>;
|
|
5
|
+
}
|
|
6
|
+
export type { IUserPasswordHistoryRepository };
|
|
7
|
+
//# sourceMappingURL=IUserPasswordHistoryRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IUserPasswordHistoryRepository.d.ts","sourceRoot":"","sources":["../../src/interfaces/IUserPasswordHistoryRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAE,0BAA0B,EAAC,MAAM,2BAA2B,CAAC;AAEhG,UAAU,8BAA8B;IACpC,MAAM,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACvE,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAA;CACrF;AAED,YAAY,EAAC,8BAA8B,EAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { mongoose } from "@drax/common-back";
|
|
2
|
+
import type { IUserPasswordHistory } from "../interfaces/IUserPasswordHistory.js";
|
|
3
|
+
declare const UserPasswordHistoryMongoSchema: mongoose.Schema<IUserPasswordHistory, mongoose.Model<IUserPasswordHistory, any, any, any, mongoose.Document<unknown, any, IUserPasswordHistory, any, {}> & IUserPasswordHistory & Required<{
|
|
4
|
+
_id: string;
|
|
5
|
+
}> & {
|
|
6
|
+
__v: number;
|
|
7
|
+
}, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IUserPasswordHistory, mongoose.Document<unknown, {}, mongoose.FlatRecord<IUserPasswordHistory>, {}, mongoose.DefaultSchemaOptions> & mongoose.FlatRecord<IUserPasswordHistory> & Required<{
|
|
8
|
+
_id: string;
|
|
9
|
+
}> & {
|
|
10
|
+
__v: number;
|
|
11
|
+
}>;
|
|
12
|
+
declare let UserPasswordHistoryModel: any;
|
|
13
|
+
export { UserPasswordHistoryMongoSchema, UserPasswordHistoryModel };
|
|
14
|
+
export default UserPasswordHistoryModel;
|
|
15
|
+
//# sourceMappingURL=UserPasswordHistoryModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserPasswordHistoryModel.d.ts","sourceRoot":"","sources":["../../src/models/UserPasswordHistoryModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAI3C,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAEhF,QAAA,MAAM,8BAA8B;;;;;;;;EAGd,CAAC;AAevB,QAAA,IAAI,wBAAwB,KAAA,CAAC;AAY7B,OAAO,EACH,8BAA8B,EAC9B,wBAAwB,EAC3B,CAAA;AAED,eAAe,wBAAwB,CAAA"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
declare enum UserApiKeyPermissions {
|
|
2
2
|
Create = "userApiKey:create",
|
|
3
|
-
CreateMy = "userApiKey:createMy",
|
|
4
3
|
Update = "userApiKey:update",
|
|
5
4
|
Delete = "userApiKey:delete",
|
|
6
5
|
View = "userApiKey:view",
|
|
7
|
-
|
|
6
|
+
ViewAll = "userApiKey:viewAll",
|
|
8
7
|
Manage = "userApiKey:manage"
|
|
9
8
|
}
|
|
10
9
|
export default UserApiKeyPermissions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserApiKeyPermissions.d.ts","sourceRoot":"","sources":["../../src/permissions/UserApiKeyPermissions.ts"],"names":[],"mappings":"AAAA,aAAK,qBAAqB;IACtB,MAAM,sBAAsB;IAC5B,
|
|
1
|
+
{"version":3,"file":"UserApiKeyPermissions.d.ts","sourceRoot":"","sources":["../../src/permissions/UserApiKeyPermissions.ts"],"names":[],"mappings":"AAAA,aAAK,qBAAqB;IACtB,MAAM,sBAAsB;IAC5B,MAAM,sBAAsB;IAC5B,MAAM,sBAAsB;IAC5B,IAAI,oBAAoB;IACxB,OAAO,uBAAuB;IAC9B,MAAM,sBAAsB;CAE/B;AAED,eAAe,qBAAqB,CAAC;AACrC,OAAO,EAAC,qBAAqB,EAAC,CAAC"}
|
|
@@ -7,10 +7,8 @@ declare const permissions: {
|
|
|
7
7
|
ViewAll: UserSessionPermissions.ViewAll;
|
|
8
8
|
Manage: UserSessionPermissions.Manage;
|
|
9
9
|
Create: UserApiKeyPermissions.Create;
|
|
10
|
-
CreateMy: UserApiKeyPermissions.CreateMy;
|
|
11
10
|
Update: UserApiKeyPermissions.Update;
|
|
12
11
|
Delete: UserApiKeyPermissions.Delete;
|
|
13
|
-
ViewMy: UserApiKeyPermissions.ViewMy;
|
|
14
12
|
Permissions: RolePermissions.Permissions;
|
|
15
13
|
ChangePassword: UserPermissions.ChangePassword;
|
|
16
14
|
SwitchTenant: UserPermissions.SwitchTenant;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/permissions/index.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAEjE,QAAA,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/permissions/index.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAEjE,QAAA,MAAM,WAAW;;;;;;;;;;CAOhB,CAAC;AAGF,eAAe,WAAW,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultPasswordPolicy.d.ts","sourceRoot":"","sources":["../../src/policies/defaultPasswordPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE/D,QAAA,MAAM,qBAAqB,EAAE,eAU5B,CAAA;AAED,OAAO,EACH,qBAAqB,EACxB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractMongoRepository } from "@drax/crud-back";
|
|
2
|
+
import type { IUserPasswordHistoryRepository } from "../../interfaces/IUserPasswordHistoryRepository.js";
|
|
3
|
+
import type { IUserPasswordHistory, IUserPasswordHistoryCreate } from "../../interfaces/IUserPasswordHistory.js";
|
|
4
|
+
declare class UserPasswordHistoryMongoRepository extends AbstractMongoRepository<IUserPasswordHistory, IUserPasswordHistoryCreate, IUserPasswordHistoryCreate> implements IUserPasswordHistoryRepository {
|
|
5
|
+
constructor();
|
|
6
|
+
findLatestByUserId(userId: string, limit: number): Promise<IUserPasswordHistory[]>;
|
|
7
|
+
}
|
|
8
|
+
export default UserPasswordHistoryMongoRepository;
|
|
9
|
+
export { UserPasswordHistoryMongoRepository };
|
|
10
|
+
//# sourceMappingURL=UserPasswordHistoryMongoRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserPasswordHistoryMongoRepository.d.ts","sourceRoot":"","sources":["../../../src/repository/mongo/UserPasswordHistoryMongoRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAC,8BAA8B,EAAC,MAAM,oDAAoD,CAAC;AACvG,OAAO,KAAK,EAAC,oBAAoB,EAAE,0BAA0B,EAAC,MAAM,0CAA0C,CAAC;AAG/G,cAAM,kCAAmC,SAAQ,uBAAuB,CAAC,oBAAoB,EAAE,0BAA0B,EAAE,0BAA0B,CAAE,YAAW,8BAA8B;;IAQtL,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAQ3F;AAED,eAAe,kCAAkC,CAAA;AACjD,OAAO,EAAC,kCAAkC,EAAC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SqliteTableField } from "@drax/common-back";
|
|
2
|
+
import { AbstractSqliteRepository } from "@drax/crud-back";
|
|
3
|
+
import type { IUserPasswordHistoryRepository } from "../../interfaces/IUserPasswordHistoryRepository.js";
|
|
4
|
+
import type { IUserPasswordHistory, IUserPasswordHistoryCreate } from "../../interfaces/IUserPasswordHistory.js";
|
|
5
|
+
declare class UserPasswordHistorySqliteRepository extends AbstractSqliteRepository<IUserPasswordHistory, IUserPasswordHistoryCreate, IUserPasswordHistoryCreate> implements IUserPasswordHistoryRepository {
|
|
6
|
+
protected db: any;
|
|
7
|
+
protected tableName: string;
|
|
8
|
+
protected dataBaseFile: string;
|
|
9
|
+
protected searchFields: string[];
|
|
10
|
+
protected booleanFields: string[];
|
|
11
|
+
protected identifier: string;
|
|
12
|
+
protected populateFields: {
|
|
13
|
+
field: string;
|
|
14
|
+
table: string;
|
|
15
|
+
identifier: string;
|
|
16
|
+
}[];
|
|
17
|
+
protected tableFields: SqliteTableField[];
|
|
18
|
+
protected verbose: boolean;
|
|
19
|
+
prepareData(): Promise<void>;
|
|
20
|
+
prepareItem(item: IUserPasswordHistory): Promise<void>;
|
|
21
|
+
findLatestByUserId(userId: string, limit: number): Promise<IUserPasswordHistory[]>;
|
|
22
|
+
}
|
|
23
|
+
export default UserPasswordHistorySqliteRepository;
|
|
24
|
+
export { UserPasswordHistorySqliteRepository };
|
|
25
|
+
//# sourceMappingURL=UserPasswordHistorySqliteRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserPasswordHistorySqliteRepository.d.ts","sourceRoot":"","sources":["../../../src/repository/sqlite/UserPasswordHistorySqliteRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAC,wBAAwB,EAAC,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAC,8BAA8B,EAAC,MAAM,oDAAoD,CAAC;AACvG,OAAO,KAAK,EAAC,oBAAoB,EAAE,0BAA0B,EAAC,MAAM,0CAA0C,CAAC;AAE/G,cAAM,mCAAoC,SAAQ,wBAAwB,CAAC,oBAAoB,EAAE,0BAA0B,EAAE,0BAA0B,CAAE,YAAW,8BAA8B;IAC9L,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC;IAClB,SAAS,CAAC,SAAS,EAAE,MAAM,CAA2B;IACtD,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAM;IACtC,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,CAAM;IACvC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAS;IACrC,SAAS,CAAC,cAAc;;;;QAEvB;IACD,SAAS,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAKxC;IACD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAErB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAG5B,WAAW,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtD,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAO3F;AAED,eAAe,mCAAmC,CAAA;AAClD,OAAO,EAAC,mCAAmC,EAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IPasswordPolicy, IPasswordPolicyProject } from "@drax/identity-share";
|
|
2
|
+
declare class PasswordPolicyResolver {
|
|
3
|
+
private projectPolicy;
|
|
4
|
+
setProjectPolicy(projectPolicy: IPasswordPolicyProject): void;
|
|
5
|
+
resolve(): Promise<IPasswordPolicy>;
|
|
6
|
+
private getProjectPolicy;
|
|
7
|
+
}
|
|
8
|
+
export default PasswordPolicyResolver;
|
|
9
|
+
export { PasswordPolicyResolver };
|
|
10
|
+
//# sourceMappingURL=PasswordPolicyResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordPolicyResolver.d.ts","sourceRoot":"","sources":["../../src/resolver/PasswordPolicyResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAE,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAKlF,cAAM,sBAAsB;IAExB,OAAO,CAAC,aAAa,CAA+B;IAEpD,gBAAgB,CAAE,aAAa,EAAG,sBAAsB;IAIlD,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;YAW3B,gBAAgB;CAKjC;AAED,eAAe,sBAAsB,CAAA;AACrC,OAAO,EAAC,sBAAsB,EAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/UserRoutes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/UserRoutes.ts"],"names":[],"mappings":"AAcA,iBAAe,UAAU,CAAC,OAAO,KAAA,EAAE,OAAO,KAAA,iBAwIzC;AAED,eAAe,UAAU,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
declare const PasswordPolicySchema: z.ZodObject<{
|
|
3
|
+
minLength: z.ZodNumber;
|
|
4
|
+
maxLength: z.ZodNumber;
|
|
5
|
+
requireUppercase: z.ZodBoolean;
|
|
6
|
+
requireLowercase: z.ZodBoolean;
|
|
7
|
+
requireNumber: z.ZodBoolean;
|
|
8
|
+
requireSpecialChar: z.ZodBoolean;
|
|
9
|
+
disallowSpaces: z.ZodBoolean;
|
|
10
|
+
preventReuse: z.ZodNumber;
|
|
11
|
+
expirationDays: z.ZodNullable<z.ZodNumber>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
declare const PartialPasswordPolicySchema: z.ZodObject<{
|
|
14
|
+
minLength: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
maxLength: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
requireUppercase: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
requireLowercase: z.ZodOptional<z.ZodBoolean>;
|
|
18
|
+
requireNumber: z.ZodOptional<z.ZodBoolean>;
|
|
19
|
+
requireSpecialChar: z.ZodOptional<z.ZodBoolean>;
|
|
20
|
+
disallowSpaces: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
+
preventReuse: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
expirationDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export { PasswordPolicySchema, PartialPasswordPolicySchema };
|
|
25
|
+
//# sourceMappingURL=PasswordPolicySchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordPolicySchema.d.ts","sourceRoot":"","sources":["../../src/schemas/PasswordPolicySchema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAcpB,QAAA,MAAM,oBAAoB;;;;;;;;;;iBAOzB,CAAC;AAEF,QAAA,MAAM,2BAA2B;;;;;;;;;;iBAAqC,CAAC;AAEvE,OAAO,EACH,oBAAoB,EACpB,2BAA2B,EAC9B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegisterSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/RegisterSchema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAkB,MAAM,KAAK,CAAA;AAEpC,QAAA,MAAM,yBAAyB;;;;;;
|
|
1
|
+
{"version":3,"file":"RegisterSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/RegisterSchema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAkB,MAAM,KAAK,CAAA;AAEpC,QAAA,MAAM,yBAAyB;;;;;;iBAS7B,CAAC;AAEH,QAAA,MAAM,0BAA0B;;;iBAI9B,CAAC;AAEH,OAAO,EAAC,yBAAyB,EAAE,0BAA0B,EAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/UserSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,GAAG,EAA+C,MAAM,KAAK,CAAA;AAE5E,QAAA,MAAM,cAAc;;;;;;;;gCAalB,CAAA;AAEF,QAAA,MAAM,gBAAgB;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"UserSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/UserSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,GAAG,EAA+C,MAAM,KAAK,CAAA;AAE5E,QAAA,MAAM,cAAc;;;;;;;;gCAalB,CAAA;AAEF,QAAA,MAAM,gBAAgB;;;;;;;;;gCAGpB,CAAC;AAGH,QAAA,MAAM,gBAAgB;;;;;;;;gCAA4B,CAAC;AAEnD,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAqBV,CAAC;AAGP,OAAO,EACH,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACnB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultPasswordPolicy.d.ts","sourceRoot":"","sources":["../../../src/security/constants/defaultPasswordPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AAEtE,QAAA,MAAM,qBAAqB,EAAE,eAU5B,CAAA;AAED,OAAO,EACH,qBAAqB,EACxB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface IPasswordPolicy {
|
|
2
|
+
minLength: number;
|
|
3
|
+
maxLength: number;
|
|
4
|
+
requireUppercase: boolean;
|
|
5
|
+
requireLowercase: boolean;
|
|
6
|
+
requireNumber: boolean;
|
|
7
|
+
requireSpecialChar: boolean;
|
|
8
|
+
disallowSpaces: boolean;
|
|
9
|
+
preventReuse: number;
|
|
10
|
+
expirationDays: number | null;
|
|
11
|
+
}
|
|
12
|
+
export type { IPasswordPolicy };
|
|
13
|
+
//# sourceMappingURL=IPasswordPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IPasswordPolicy.d.ts","sourceRoot":"","sources":["../../../src/security/interfaces/IPasswordPolicy.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,YAAY,EAAC,eAAe,EAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IPasswordPolicyProjectContext.d.ts","sourceRoot":"","sources":["../../../src/security/interfaces/IPasswordPolicyProjectContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAE1D,UAAU,6BAA6B;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAC3C;AAED,YAAY,EAAC,6BAA6B,EAAC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
declare const PasswordPolicySchema: z.ZodObject<{
|
|
3
|
+
minLength: z.ZodNumber;
|
|
4
|
+
maxLength: z.ZodNumber;
|
|
5
|
+
requireUppercase: z.ZodBoolean;
|
|
6
|
+
requireLowercase: z.ZodBoolean;
|
|
7
|
+
requireNumber: z.ZodBoolean;
|
|
8
|
+
requireSpecialChar: z.ZodBoolean;
|
|
9
|
+
disallowSpaces: z.ZodBoolean;
|
|
10
|
+
preventReuse: z.ZodNumber;
|
|
11
|
+
expirationDays: z.ZodNullable<z.ZodNumber>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
declare const PartialPasswordPolicySchema: z.ZodObject<{
|
|
14
|
+
minLength: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
maxLength: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
requireUppercase: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
requireLowercase: z.ZodOptional<z.ZodBoolean>;
|
|
18
|
+
requireNumber: z.ZodOptional<z.ZodBoolean>;
|
|
19
|
+
requireSpecialChar: z.ZodOptional<z.ZodBoolean>;
|
|
20
|
+
disallowSpaces: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
+
preventReuse: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
expirationDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export { PasswordPolicySchema, PartialPasswordPolicySchema };
|
|
25
|
+
//# sourceMappingURL=PasswordPolicySchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordPolicySchema.d.ts","sourceRoot":"","sources":["../../../src/security/schemas/PasswordPolicySchema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAcpB,QAAA,MAAM,oBAAoB;;;;;;;;;;iBAGxB,CAAC;AAEH,QAAA,MAAM,2BAA2B;;;;;;;;;;iBAAqC,CAAC;AAEvE,OAAO,EACH,oBAAoB,EACpB,2BAA2B,EAC9B,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IPasswordPolicy } from "../interfaces/IPasswordPolicy.js";
|
|
2
|
+
import type { IPasswordPolicyProjectContext } from "../interfaces/IPasswordPolicyProjectContext.js";
|
|
3
|
+
declare class PasswordPolicyResolver {
|
|
4
|
+
resolve(projectContext?: IPasswordPolicyProjectContext): Promise<IPasswordPolicy>;
|
|
5
|
+
private getProjectPolicy;
|
|
6
|
+
}
|
|
7
|
+
export default PasswordPolicyResolver;
|
|
8
|
+
export { PasswordPolicyResolver };
|
|
9
|
+
//# sourceMappingURL=PasswordPolicyResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordPolicyResolver.d.ts","sourceRoot":"","sources":["../../../src/security/services/PasswordPolicyResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAC,6BAA6B,EAAC,MAAM,gDAAgD,CAAC;AAIlG,cAAM,sBAAsB;IAClB,OAAO,CAAC,cAAc,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,eAAe,CAAC;YAWzE,gBAAgB;CAKjC;AAED,eAAe,sBAAsB,CAAA;AACrC,OAAO,EAAC,sBAAsB,EAAC,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ZodType } from "zod";
|
|
2
|
+
import type { IUser } from "@drax/identity-share";
|
|
3
|
+
import type { IPasswordPolicy } from "../interfaces/IPasswordPolicy.js";
|
|
4
|
+
import type { IPasswordPolicyProjectContext } from "../interfaces/IPasswordPolicyProjectContext.js";
|
|
5
|
+
import type UserPasswordHistoryService from "../../services/UserPasswordHistoryService.js";
|
|
6
|
+
import type { IUserRepository } from "../../interfaces/IUserRepository.js";
|
|
7
|
+
import PasswordPolicyResolver from "./PasswordPolicyResolver.js";
|
|
8
|
+
interface IValidatePasswordOptions {
|
|
9
|
+
field?: string;
|
|
10
|
+
userId?: string;
|
|
11
|
+
currentPasswordHash?: string;
|
|
12
|
+
}
|
|
13
|
+
declare class PasswordPolicyService {
|
|
14
|
+
private readonly resolver;
|
|
15
|
+
private readonly userRepository?;
|
|
16
|
+
private readonly userPasswordHistoryService?;
|
|
17
|
+
constructor(resolver: PasswordPolicyResolver, userRepository?: IUserRepository, userPasswordHistoryService?: UserPasswordHistoryService);
|
|
18
|
+
getFinalPolicy(projectContext?: IPasswordPolicyProjectContext): Promise<IPasswordPolicy>;
|
|
19
|
+
getPasswordSchema(projectContext?: IPasswordPolicyProjectContext): Promise<ZodType<string>>;
|
|
20
|
+
validatePassword(password: string, projectContext?: IPasswordPolicyProjectContext, options?: IValidatePasswordOptions): Promise<void>;
|
|
21
|
+
generateCompatiblePassword(projectContext?: IPasswordPolicyProjectContext): Promise<string>;
|
|
22
|
+
getPasswordStatus(user: IUser, projectContext?: IPasswordPolicyProjectContext): Promise<{
|
|
23
|
+
expired: boolean;
|
|
24
|
+
expiresAt: Date | null;
|
|
25
|
+
}>;
|
|
26
|
+
recordPassword(userId: string, passwordHash: string): Promise<void>;
|
|
27
|
+
private validateBusinessRules;
|
|
28
|
+
private getRecentPasswordHashes;
|
|
29
|
+
private getLastPasswordChangeDate;
|
|
30
|
+
private randomChar;
|
|
31
|
+
private shuffle;
|
|
32
|
+
}
|
|
33
|
+
export default PasswordPolicyService;
|
|
34
|
+
export { PasswordPolicyService };
|
|
35
|
+
//# sourceMappingURL=PasswordPolicyService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordPolicyService.d.ts","sourceRoot":"","sources":["../../../src/security/services/PasswordPolicyService.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,OAAO,EAAC,MAAM,KAAK,CAAC;AAGtC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAC,6BAA6B,EAAC,MAAM,gDAAgD,CAAC;AAClG,OAAO,KAAK,0BAA0B,MAAM,8CAA8C,CAAC;AAC3F,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qCAAqC,CAAC;AACzE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAGjE,UAAU,wBAAwB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,cAAM,qBAAqB;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;gBAF3B,QAAQ,EAAE,sBAAsB,EAChC,cAAc,CAAC,EAAE,eAAe,EAChC,0BAA0B,CAAC,EAAE,0BAA0B;IAItE,cAAc,CAAC,cAAc,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxF,iBAAiB,CAAC,cAAc,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAK3F,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBrI,0BAA0B,CAAC,cAAc,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,MAAM,CAAC;IA0C3F,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;KAAC,CAAC;IAoBnI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAI3D,qBAAqB;YAcrB,uBAAuB;YAgBvB,yBAAyB;IAavC,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,OAAO;CAUlB;AAED,eAAe,qBAAqB,CAAA;AACpC,OAAO,EAAC,qBAAqB,EAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import type { IPasswordPolicy } from "../interfaces/IPasswordPolicy.js";
|
|
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/security/utils/PasswordPolicySchemaFactory.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AAEtE,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 @@
|
|
|
1
|
+
{"version":3,"file":"getPasswordEnvPolicy.d.ts","sourceRoot":"","sources":["../../../src/security/utils/getPasswordEnvPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AAEtE,iBAAS,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC,CAgBxD;AAED,eAAe,oBAAoB,CAAA;AACnC,OAAO,EAAC,oBAAoB,EAAC,CAAA"}
|