@naman_deep_singh/security 1.6.0 → 1.7.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/README.md +1 -1
- package/dist/cjs/core/crypto/CryptoManger.js +107 -0
- package/dist/cjs/core/crypto/index.js +13 -26
- package/dist/cjs/core/index.js +44 -0
- package/dist/cjs/core/jwt/{jwtManager.js → JWTManager.js} +8 -8
- package/dist/cjs/core/jwt/decode.js +0 -1
- package/dist/cjs/core/jwt/generateTokens.js +6 -6
- package/dist/cjs/core/jwt/index.js +23 -22
- package/dist/cjs/core/jwt/signToken.js +2 -2
- package/dist/cjs/core/password/{passwordManager.js → PasswordManager.js} +3 -3
- package/dist/cjs/core/password/hash.js +5 -5
- package/dist/cjs/core/password/index.js +20 -17
- package/dist/cjs/index.js +4 -40
- package/dist/cjs/interfaces/index.js +2 -0
- package/dist/esm/core/crypto/CryptoManger.js +100 -0
- package/dist/esm/core/crypto/index.js +5 -5
- package/dist/esm/core/index.js +6 -0
- package/dist/esm/core/jwt/{jwtManager.js → JWTManager.js} +3 -3
- package/dist/esm/core/jwt/decode.js +0 -1
- package/dist/esm/core/jwt/generateTokens.js +2 -2
- package/dist/esm/core/jwt/index.js +8 -8
- package/dist/esm/core/jwt/signToken.js +1 -1
- package/dist/esm/core/password/{passwordManager.js → PasswordManager.js} +1 -1
- package/dist/esm/core/password/hash.js +3 -3
- package/dist/esm/core/password/index.js +5 -3
- package/dist/esm/index.js +4 -13
- package/dist/esm/interfaces/index.js +1 -0
- package/dist/types/core/crypto/CryptoManger.d.ts +36 -0
- package/dist/types/core/crypto/index.d.ts +5 -5
- package/dist/types/core/index.d.ts +3 -0
- package/dist/{esm/core/jwt/jwtManager.d.ts → types/core/jwt/JWTManager.d.ts} +1 -1
- package/dist/types/core/jwt/generateTokens.d.ts +1 -1
- package/dist/types/core/jwt/index.d.ts +9 -8
- package/dist/types/core/jwt/verify.d.ts +1 -1
- package/dist/types/core/password/{passwordManager.d.ts → PasswordManager.d.ts} +1 -1
- package/dist/types/core/password/index.d.ts +6 -3
- package/dist/types/core/password/strength.d.ts +1 -1
- package/dist/types/index.d.ts +1 -40
- package/dist/types/interfaces/index.d.ts +2 -0
- package/package.json +30 -4
- package/dist/cjs/core/crypto/cryptoManager.d.ts +0 -111
- package/dist/cjs/core/crypto/cryptoManager.js +0 -208
- package/dist/cjs/core/crypto/decrypt.d.ts +0 -1
- package/dist/cjs/core/crypto/encrypt.d.ts +0 -1
- package/dist/cjs/core/crypto/hmac.d.ts +0 -8
- package/dist/cjs/core/crypto/index.d.ts +0 -5
- package/dist/cjs/core/crypto/random.d.ts +0 -8
- package/dist/cjs/core/jwt/decode.d.ts +0 -12
- package/dist/cjs/core/jwt/extractToken.d.ts +0 -11
- package/dist/cjs/core/jwt/generateTokens.d.ts +0 -4
- package/dist/cjs/core/jwt/index.d.ts +0 -8
- package/dist/cjs/core/jwt/jwtManager.d.ts +0 -43
- package/dist/cjs/core/jwt/parseDuration.d.ts +0 -1
- package/dist/cjs/core/jwt/signToken.d.ts +0 -2
- package/dist/cjs/core/jwt/types.d.ts +0 -22
- package/dist/cjs/core/jwt/validateToken.d.ts +0 -16
- package/dist/cjs/core/jwt/verify.d.ts +0 -18
- package/dist/cjs/core/password/hash.d.ts +0 -10
- package/dist/cjs/core/password/index.d.ts +0 -3
- package/dist/cjs/core/password/passwordManager.d.ts +0 -29
- package/dist/cjs/core/password/strength.d.ts +0 -2
- package/dist/cjs/core/password/types.d.ts +0 -7
- package/dist/cjs/core/password/utils.d.ts +0 -16
- package/dist/cjs/core/password/verify.d.ts +0 -10
- package/dist/cjs/index.d.ts +0 -40
- package/dist/cjs/interfaces/jwt.interface.d.ts +0 -47
- package/dist/cjs/interfaces/password.interface.d.ts +0 -60
- package/dist/esm/core/crypto/cryptoManager.d.ts +0 -111
- package/dist/esm/core/crypto/cryptoManager.js +0 -203
- package/dist/esm/core/crypto/decrypt.d.ts +0 -1
- package/dist/esm/core/crypto/encrypt.d.ts +0 -1
- package/dist/esm/core/crypto/hmac.d.ts +0 -8
- package/dist/esm/core/crypto/index.d.ts +0 -5
- package/dist/esm/core/crypto/random.d.ts +0 -8
- package/dist/esm/core/jwt/decode.d.ts +0 -12
- package/dist/esm/core/jwt/extractToken.d.ts +0 -11
- package/dist/esm/core/jwt/generateTokens.d.ts +0 -4
- package/dist/esm/core/jwt/index.d.ts +0 -8
- package/dist/esm/core/jwt/parseDuration.d.ts +0 -1
- package/dist/esm/core/jwt/signToken.d.ts +0 -2
- package/dist/esm/core/jwt/types.d.ts +0 -22
- package/dist/esm/core/jwt/validateToken.d.ts +0 -16
- package/dist/esm/core/jwt/verify.d.ts +0 -18
- package/dist/esm/core/password/hash.d.ts +0 -10
- package/dist/esm/core/password/index.d.ts +0 -3
- package/dist/esm/core/password/passwordManager.d.ts +0 -29
- package/dist/esm/core/password/strength.d.ts +0 -2
- package/dist/esm/core/password/types.d.ts +0 -7
- package/dist/esm/core/password/utils.d.ts +0 -16
- package/dist/esm/core/password/verify.d.ts +0 -10
- package/dist/esm/index.d.ts +0 -40
- package/dist/esm/interfaces/jwt.interface.d.ts +0 -47
- package/dist/esm/interfaces/password.interface.d.ts +0 -60
- package/dist/types/core/crypto/cryptoManager.d.ts +0 -111
- package/dist/types/core/jwt/jwtManager.d.ts +0 -43
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
export interface PasswordConfig {
|
|
2
|
-
saltRounds?: number;
|
|
3
|
-
minLength?: number;
|
|
4
|
-
maxLength?: number;
|
|
5
|
-
requireUppercase?: boolean;
|
|
6
|
-
requireLowercase?: boolean;
|
|
7
|
-
requireNumbers?: boolean;
|
|
8
|
-
requireSpecialChars?: boolean;
|
|
9
|
-
customRules?: PasswordRule[];
|
|
10
|
-
}
|
|
11
|
-
export interface PasswordRule {
|
|
12
|
-
test: (password: string) => boolean;
|
|
13
|
-
message: string;
|
|
14
|
-
}
|
|
15
|
-
export interface PasswordStrength {
|
|
16
|
-
score: number;
|
|
17
|
-
label: 'very-weak' | 'weak' | 'fair' | 'good' | 'strong';
|
|
18
|
-
feedback: string[];
|
|
19
|
-
suggestions: string[];
|
|
20
|
-
}
|
|
21
|
-
export interface PasswordValidationResult {
|
|
22
|
-
isValid: boolean;
|
|
23
|
-
errors: string[];
|
|
24
|
-
strength: PasswordStrength;
|
|
25
|
-
}
|
|
26
|
-
export interface HashedPassword {
|
|
27
|
-
hash: string;
|
|
28
|
-
salt: string;
|
|
29
|
-
}
|
|
30
|
-
export interface IPasswordManager {
|
|
31
|
-
hash(password: string, salt?: string): Promise<HashedPassword>;
|
|
32
|
-
verify(password: string, hash: string, salt: string): Promise<boolean>;
|
|
33
|
-
generate(length?: number, options?: PasswordConfig): string;
|
|
34
|
-
validate(password: string, config?: PasswordConfig): PasswordValidationResult;
|
|
35
|
-
checkStrength(password: string): PasswordStrength;
|
|
36
|
-
needsUpgrade(hash: string, currentConfig: PasswordConfig): boolean;
|
|
37
|
-
}
|
|
38
|
-
export interface IPasswordStrengthChecker {
|
|
39
|
-
analyze(password: string): PasswordStrength;
|
|
40
|
-
checkLength(password: string): {
|
|
41
|
-
valid: boolean;
|
|
42
|
-
message: string;
|
|
43
|
-
};
|
|
44
|
-
checkComplexity(password: string, config: PasswordConfig): {
|
|
45
|
-
valid: boolean;
|
|
46
|
-
message: string;
|
|
47
|
-
}[];
|
|
48
|
-
checkCommonPasswords(password: string): {
|
|
49
|
-
valid: boolean;
|
|
50
|
-
message: string;
|
|
51
|
-
};
|
|
52
|
-
checkSequential(password: string): {
|
|
53
|
-
valid: boolean;
|
|
54
|
-
message: string;
|
|
55
|
-
};
|
|
56
|
-
checkRepetition(password: string): {
|
|
57
|
-
valid: boolean;
|
|
58
|
-
message: string;
|
|
59
|
-
};
|
|
60
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration options for CryptoManager
|
|
3
|
-
*/
|
|
4
|
-
export interface CryptoManagerConfig {
|
|
5
|
-
defaultAlgorithm?: string;
|
|
6
|
-
defaultEncoding?: BufferEncoding;
|
|
7
|
-
hmacAlgorithm?: string;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* CryptoManager - Class-based wrapper for all cryptographic operations
|
|
11
|
-
* Provides a consistent interface for encryption, decryption, HMAC generation, and secure random generation
|
|
12
|
-
*/
|
|
13
|
-
export declare class CryptoManager {
|
|
14
|
-
private config;
|
|
15
|
-
constructor(config?: CryptoManagerConfig);
|
|
16
|
-
/**
|
|
17
|
-
* Update configuration
|
|
18
|
-
*/
|
|
19
|
-
updateConfig(config: Partial<CryptoManagerConfig>): void;
|
|
20
|
-
/**
|
|
21
|
-
* Get current configuration
|
|
22
|
-
*/
|
|
23
|
-
getConfig(): Required<CryptoManagerConfig>;
|
|
24
|
-
/**
|
|
25
|
-
* Encrypt data using the default or specified algorithm
|
|
26
|
-
*/
|
|
27
|
-
encrypt(plaintext: string, key: string, _options?: {
|
|
28
|
-
algorithm?: string;
|
|
29
|
-
encoding?: BufferEncoding;
|
|
30
|
-
iv?: string;
|
|
31
|
-
}): string;
|
|
32
|
-
/**
|
|
33
|
-
* Decrypt data using the default or specified algorithm
|
|
34
|
-
*/
|
|
35
|
-
decrypt(encryptedData: string, key: string, _options?: {
|
|
36
|
-
algorithm?: string;
|
|
37
|
-
encoding?: BufferEncoding;
|
|
38
|
-
iv?: string;
|
|
39
|
-
}): string;
|
|
40
|
-
/**
|
|
41
|
-
* Generate HMAC signature
|
|
42
|
-
*/
|
|
43
|
-
generateHmac(data: string, secret: string, _options?: {
|
|
44
|
-
algorithm?: string;
|
|
45
|
-
encoding?: BufferEncoding;
|
|
46
|
-
}): string;
|
|
47
|
-
/**
|
|
48
|
-
* Generate cryptographically secure random bytes
|
|
49
|
-
*/
|
|
50
|
-
generateSecureRandom(length: number, _encoding?: BufferEncoding): string;
|
|
51
|
-
/**
|
|
52
|
-
* Verify HMAC signature
|
|
53
|
-
*/
|
|
54
|
-
verifyHmac(data: string, secret: string, signature: string, _options?: {
|
|
55
|
-
algorithm?: string;
|
|
56
|
-
encoding?: BufferEncoding;
|
|
57
|
-
}): boolean;
|
|
58
|
-
/**
|
|
59
|
-
* Create a key derivation function using PBKDF2
|
|
60
|
-
*/
|
|
61
|
-
deriveKey(password: string, salt: string, iterations?: number, keyLength?: number): Promise<string>;
|
|
62
|
-
/**
|
|
63
|
-
* Hash data using SHA-256
|
|
64
|
-
*/
|
|
65
|
-
sha256(data: string, encoding?: BufferEncoding): string;
|
|
66
|
-
/**
|
|
67
|
-
* Hash data using SHA-512
|
|
68
|
-
*/
|
|
69
|
-
sha512(data: string, encoding?: BufferEncoding): string;
|
|
70
|
-
/**
|
|
71
|
-
* Generate a secure key pair for asymmetric encryption
|
|
72
|
-
*/
|
|
73
|
-
generateKeyPair(options?: {
|
|
74
|
-
modulusLength?: number;
|
|
75
|
-
publicKeyEncoding?: {
|
|
76
|
-
type: string;
|
|
77
|
-
format: string;
|
|
78
|
-
};
|
|
79
|
-
privateKeyEncoding?: {
|
|
80
|
-
type: string;
|
|
81
|
-
format: string;
|
|
82
|
-
};
|
|
83
|
-
}): Promise<{
|
|
84
|
-
publicKey: string;
|
|
85
|
-
privateKey: string;
|
|
86
|
-
}>;
|
|
87
|
-
/**
|
|
88
|
-
* Encrypt data using RSA public key
|
|
89
|
-
*/
|
|
90
|
-
rsaEncrypt(data: string, publicKey: string): Promise<string>;
|
|
91
|
-
/**
|
|
92
|
-
* Decrypt data using RSA private key
|
|
93
|
-
*/
|
|
94
|
-
rsaDecrypt(encryptedData: string, privateKey: string): Promise<string>;
|
|
95
|
-
/**
|
|
96
|
-
* Create digital signature using RSA private key
|
|
97
|
-
*/
|
|
98
|
-
rsaSign(data: string, privateKey: string, algorithm?: string): Promise<string>;
|
|
99
|
-
/**
|
|
100
|
-
* Verify digital signature using RSA public key
|
|
101
|
-
*/
|
|
102
|
-
rsaVerify(data: string, signature: string, publicKey: string, algorithm?: string): Promise<boolean>;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Create a CryptoManager instance with default configuration
|
|
106
|
-
*/
|
|
107
|
-
export declare const createCryptoManager: (config?: CryptoManagerConfig) => CryptoManager;
|
|
108
|
-
/**
|
|
109
|
-
* Default CryptoManager instance
|
|
110
|
-
*/
|
|
111
|
-
export declare const cryptoManager: CryptoManager;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { type JwtPayload, type Secret } from 'jsonwebtoken';
|
|
2
|
-
import type { AccessToken, ITokenManager, JWTConfig, RefreshToken, TokenPair } from '../../interfaces/jwt.interface';
|
|
3
|
-
export declare class JWTManager implements ITokenManager {
|
|
4
|
-
private accessSecret;
|
|
5
|
-
private refreshSecret;
|
|
6
|
-
private accessExpiry;
|
|
7
|
-
private refreshExpiry;
|
|
8
|
-
private cache?;
|
|
9
|
-
private cacheTTL;
|
|
10
|
-
constructor(config: JWTConfig);
|
|
11
|
-
/** Generate both access and refresh tokens */
|
|
12
|
-
generateTokens(payload: Record<string, unknown>): Promise<TokenPair>;
|
|
13
|
-
/** Generate access token */
|
|
14
|
-
generateAccessToken(payload: Record<string, unknown>): Promise<AccessToken>;
|
|
15
|
-
/** Generate refresh token */
|
|
16
|
-
generateRefreshToken(payload: Record<string, unknown>): Promise<RefreshToken>;
|
|
17
|
-
/** Verify access token */
|
|
18
|
-
verifyAccessToken(token: string): Promise<JwtPayload>;
|
|
19
|
-
/** Verify refresh token */
|
|
20
|
-
verifyRefreshToken(token: string): Promise<JwtPayload>;
|
|
21
|
-
/** Decode token without verification */
|
|
22
|
-
decodeToken(token: string, complete?: boolean): JwtPayload | string | null;
|
|
23
|
-
/** Extract token from Authorization header */
|
|
24
|
-
extractTokenFromHeader(authHeader: string): string | null;
|
|
25
|
-
/** Validate token without throwing exceptions */
|
|
26
|
-
validateToken(token: string, secret: Secret): boolean;
|
|
27
|
-
/** Rotate refresh token */
|
|
28
|
-
rotateRefreshToken(oldToken: string): Promise<RefreshToken>;
|
|
29
|
-
/** Check if token is expired */
|
|
30
|
-
isTokenExpired(token: string): boolean;
|
|
31
|
-
/** Get token expiration date */
|
|
32
|
-
getTokenExpiration(token: string): Date | null;
|
|
33
|
-
/** Clear token cache */
|
|
34
|
-
clearCache(): void;
|
|
35
|
-
/** Get cache statistics */
|
|
36
|
-
getCacheStats(): {
|
|
37
|
-
size: number;
|
|
38
|
-
maxSize: number;
|
|
39
|
-
} | null;
|
|
40
|
-
/** Private helper methods */
|
|
41
|
-
private validatePayload;
|
|
42
|
-
private verifyTokenWithCache;
|
|
43
|
-
}
|