chore: 添加 CryptoJS 的類型提示
This commit is contained in:
113
client/types/CryptoJS.d.ts
vendored
Normal file
113
client/types/CryptoJS.d.ts
vendored
Normal file
@@ -0,0 +1,113 @@
|
||||
// https://github.com/nozzlegear/crypto-js.d.ts/blob/master/crypto-js.d.ts
|
||||
// Forked from https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/9143f1233f13692c14ae2afe7aee2d5014cba916/crypto-js/crypto-js.d.ts
|
||||
|
||||
declare namespace CryptoJS {
|
||||
type Hash = (message: string, key?: string, ...options: any[]) => string;
|
||||
interface Cipher {
|
||||
encrypt(message: string, secretPassphrase: string, option?: CipherOption): WordArray;
|
||||
decrypt(encryptedMessage: string | WordArray, secretPassphrase: string, option?: CipherOption): DecryptedMessage;
|
||||
}
|
||||
interface CipherAlgorythm {
|
||||
createEncryptor(secretPassphrase: string, option?: CipherOption): Encriptor;
|
||||
createDecryptor(secretPassphrase: string, option?: CipherOption): Decryptor;
|
||||
}
|
||||
interface Encriptor {
|
||||
process(messagePart: string): string;
|
||||
finalize(): string;
|
||||
}
|
||||
interface Decryptor {
|
||||
process(messagePart: string): string;
|
||||
finalize(): string;
|
||||
}
|
||||
interface WordArray {
|
||||
iv: string;
|
||||
salt: string;
|
||||
ciphertext: string;
|
||||
key?: string;
|
||||
}
|
||||
type DecryptedMessage = {
|
||||
toString(encoder?: Encoder): string;
|
||||
};
|
||||
interface CipherOption {
|
||||
iv?: string;
|
||||
mode?: Mode;
|
||||
padding?: Padding;
|
||||
[option: string]: any;
|
||||
}
|
||||
interface Encoder {
|
||||
parse(encodedMessage: string): any;
|
||||
stringify(words: any): string;
|
||||
}
|
||||
|
||||
interface Mode {}
|
||||
interface Padding {}
|
||||
|
||||
interface Hashes {
|
||||
MD5: Hash;
|
||||
SHA1: Hash;
|
||||
SHA256: Hash;
|
||||
SHA224: Hash;
|
||||
SHA512: Hash;
|
||||
SHA384: Hash;
|
||||
SHA3: Hash;
|
||||
RIPEMD160: Hash;
|
||||
HmacMD5: Hash;
|
||||
HmacSHA1: Hash;
|
||||
HmacSHA256: Hash;
|
||||
HmacSHA224: Hash;
|
||||
HmacSHA512: Hash;
|
||||
HmacSHA384: Hash;
|
||||
HmacSHA3: Hash;
|
||||
HmacRIPEMD160: Hash;
|
||||
PBKDF2: Hash;
|
||||
AES: Cipher;
|
||||
DES: Cipher;
|
||||
TripleDES: Cipher;
|
||||
RC4: Cipher;
|
||||
RC4Drop: Cipher;
|
||||
Rabbit: Cipher;
|
||||
RabbitLegacy: Cipher;
|
||||
EvpKDF: Cipher;
|
||||
algo: {
|
||||
AES: CipherAlgorythm;
|
||||
DES: CipherAlgorythm;
|
||||
TrippleDES: CipherAlgorythm;
|
||||
RC4: CipherAlgorythm;
|
||||
RC4Drop: CipherAlgorythm;
|
||||
Rabbit: CipherAlgorythm;
|
||||
RabbitLegacy: CipherAlgorythm;
|
||||
EvpKDF: CipherAlgorythm;
|
||||
};
|
||||
format: {
|
||||
OpenSSL: any;
|
||||
Hex: any;
|
||||
};
|
||||
enc: {
|
||||
Latin1: Encoder;
|
||||
Utf8: Encoder;
|
||||
Hex: Encoder;
|
||||
Utf16: Encoder;
|
||||
Utf16LE: Encoder;
|
||||
Base64: Encoder;
|
||||
};
|
||||
mode: {
|
||||
CFB: Mode;
|
||||
CTR: Mode;
|
||||
CTRGladman: Mode;
|
||||
OFB: Mode;
|
||||
ECB: Mode;
|
||||
};
|
||||
pad: {
|
||||
Pkcs7: Padding;
|
||||
AnsiX923: Padding;
|
||||
Iso10126: Padding;
|
||||
Iso97971: Padding;
|
||||
ZeroPadding: Padding;
|
||||
NoPadding: Padding;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
declare let CryptoJS: CryptoJS.Hashes;
|
||||
|
||||
export default CryptoJS
|
||||
Reference in New Issue
Block a user