cipher-kit 2.1.1 → 2.1.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/dist/{chunk-LTVOIZP5.cjs → chunk-66WIL32E.cjs} +145 -150
- package/dist/chunk-66WIL32E.cjs.map +1 -0
- package/dist/{chunk-X4CS7UXE.cjs → chunk-HTRGOBZF.cjs} +10 -2
- package/dist/chunk-HTRGOBZF.cjs.map +1 -0
- package/dist/{chunk-FSEA3UXJ.js → chunk-JLFVTZY4.js} +4 -8
- package/dist/chunk-JLFVTZY4.js.map +1 -0
- package/dist/{chunk-6C4NIWQ4.js → chunk-LU7QOSQH.js} +9 -3
- package/dist/chunk-LU7QOSQH.js.map +1 -0
- package/dist/{chunk-PWTFVMW6.js → chunk-S6SNCTU6.js} +4 -8
- package/dist/chunk-S6SNCTU6.js.map +1 -0
- package/dist/{chunk-56PVVFVM.cjs → chunk-ZNM5M6RD.cjs} +140 -145
- package/dist/chunk-ZNM5M6RD.cjs.map +1 -0
- package/dist/{export-DUgIcobC.d.ts → export-BaM_OTFk.d.ts} +13 -31
- package/dist/{export-C4DbO5zM.d.ts → export-CCTGAosO.d.ts} +13 -31
- package/dist/{export-CpZ7s25O.d.cts → export-FYHgb-8E.d.cts} +13 -31
- package/dist/{export-DO9n7Np-.d.cts → export-KFT0YyMg.d.cts} +13 -31
- package/dist/index.cjs +19 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/node.cjs +35 -35
- package/dist/node.d.cts +2 -2
- package/dist/node.d.ts +2 -2
- package/dist/node.js +2 -2
- package/dist/{validate-cJEdGlj1.d.cts → validate-lkJAHCeJ.d.cts} +39 -11
- package/dist/{validate-cJEdGlj1.d.ts → validate-lkJAHCeJ.d.ts} +39 -11
- package/dist/web-api.cjs +35 -35
- package/dist/web-api.d.cts +2 -2
- package/dist/web-api.d.ts +2 -2
- package/dist/web-api.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-56PVVFVM.cjs.map +0 -1
- package/dist/chunk-6C4NIWQ4.js.map +0 -1
- package/dist/chunk-FSEA3UXJ.js.map +0 -1
- package/dist/chunk-LTVOIZP5.cjs.map +0 -1
- package/dist/chunk-PWTFVMW6.js.map +0 -1
- package/dist/chunk-X4CS7UXE.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/node/kit.ts","../src/node/node-encode.ts","../src/node/node-encrypt.ts"],"names":["__export","$isStr","$err","ENCODING","$ok","Buffer","$fmtError","nodeCrypto","title","$isPlainObj","ENCRYPTION_ALGORITHMS","DIGEST_ALGORITHMS","CIPHER_ENCODING","$isSecretKey","$fmtResultErr","error","matchEncryptedPattern","$stringifyObj","$parseToObj","hash"],"mappings":"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","file":"chunk-ZNM5M6RD.cjs","sourcesContent":["import type { Buffer } from \"node:buffer\";\r\nimport { $fmtResultErr, type Result } from \"~/helpers/error\";\r\nimport type {\r\n CreateSecretKeyOptions,\r\n DecryptOptions,\r\n Encoding,\r\n EncryptOptions,\r\n HashOptions,\r\n HashPasswordOptions,\r\n NodeSecretKey,\r\n VerifyPasswordOptions,\r\n} from \"~/helpers/types\";\r\nimport { $convertBytesToStr, $convertEncoding, $convertStrToBytes } from \"./node-encode\";\r\nimport {\r\n $createSecretKey,\r\n $decrypt,\r\n $decryptObj,\r\n $encrypt,\r\n $encryptObj,\r\n $generateUuid,\r\n $hash,\r\n $hashPassword,\r\n $verifyPassword,\r\n} from \"./node-encrypt\";\r\n\r\n/**\r\n * Safely generates a UUID (v4) (non-throwing).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * It's like giving your pet a name tag with a super random name made of numbers and letters.\r\n * The chance of two pets getting the same name tag is practically zero, and it's very hard to guess!\r\n *\r\n * @returns A `Result` containing the UUID string or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const {result, error, success} = tryGenerateUuid();\r\n *\r\n * if (success) console.log(result); // \"...\" (a UUID string)\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryGenerateUuid(): Result<string> {\r\n return $generateUuid();\r\n}\r\n\r\n/**\r\n * Generates a UUID (v4) (throwing).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * It's like giving your pet a name tag with a super random name made of numbers and letters.\r\n * The chance of two pets getting the same name tag is practically zero, and it's very hard to guess!\r\n *\r\n * @returns A UUID string.\r\n * @throws {Error} If UUID generation fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const uuid = generateUuid(); // \"...\" (a UUID string)\r\n * ```\r\n */\r\nexport function generateUuid(): string {\r\n const { result, error } = $generateUuid();\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n\r\n/**\r\n * Safely derives a `SecretKey` from the provided string for encryption/decryption (non-throwing).\r\n *\r\n * Uses HKDF to derive a key from the input string.\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * Imagine you want to create a special key for future use to lock your treasure box (data).\r\n * So, you stir in some secret ingredients (like salt and info) to make sure your key is one-of-a-kind.\r\n *\r\n * @param secret - The input string to derive the `SecretKey` from, must be at least 8 characters.\r\n * @param options.algorithm - The encryption algorithm to use (default: `'aes256gcm'`).\r\n * @param options.digest - The hash algorithm for HKDF (default: `'sha256'`).\r\n * @param options.salt - A salt string (default: `'cipher-kit-salt'`, must be ≥ 8 chars).\r\n * @param options.info - An info string (default: `'cipher-kit'`).\r\n * @returns A `Result` containing the derived `SecretKey` or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const {result, error, success} = tryCreateSecretKey(\"my-secret\");\r\n *\r\n * if (success) console.log(result); // SecretKey object\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryCreateSecretKey(\r\n secret: string,\r\n options: CreateSecretKeyOptions = {},\r\n): Result<{ result: NodeSecretKey }> {\r\n return $createSecretKey(secret, options);\r\n}\r\n\r\n/**\r\n * Derives a `SecretKey` from the provided string for encryption/decryption (throwing).\r\n *\r\n * Uses HKDF to derive a key from the input string.\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * Imagine you want to create a special key for future use to lock your treasure box (data).\r\n * So, you stir in some secret ingredients (like salt and info) to make sure your key is one-of-a-kind.\r\n *\r\n * @param secret - The input string to derive the `SecretKey` from, must be at least 8 characters.\r\n * @param options.algorithm - The encryption algorithm to use (default: `'aes256gcm'`).\r\n * @param options.digest - The hash algorithm for HKDF (default: `'sha256'`).\r\n * @param options.salt - A salt string (default: `'cipher-kit-salt'`, must be ≥ 8 chars).\r\n * @param options.info - An info string (default: `'cipher-kit'`).\r\n * @returns The derived `SecretKey`.\r\n * @throws {Error} If key derivation fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const secretKey = createSecretKey(\"my-secret\"); // SecretKey object\r\n * ```\r\n */\r\nexport function createSecretKey(secret: string, options: CreateSecretKeyOptions = {}): NodeSecretKey {\r\n const { result, error } = $createSecretKey(secret, options);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n\r\n/**\r\n * Safely encrypts a UTF-8 string using the provided `SecretKey` (non-throwing).\r\n *\r\n * Output format: \"iv.cipher.tag.\"\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * You scramble a secret message with your special key,\r\n * creating a jumbled code that only someone with the right key can read.\r\n *\r\n * @param data - A UTF-8 string to encrypt.\r\n * @param secretKey - The `SecretKey` object used for encryption.\r\n * @param options.outputEncoding - The encoding format for the output ciphertext (default: `'base64url'`).\r\n * @returns A `Result` containing the encrypted string in the specified format or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const secretKey = createSecretKey(\"my-secret\");\r\n * const {result, error, success} = tryEncrypt(\"Hello, World!\", secretKey);\r\n *\r\n * if (success) console.log(result); // \"iv.cipher.tag.\" (Encrypted string)\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryEncrypt(data: string, secretKey: NodeSecretKey, options: EncryptOptions = {}): Result<string> {\r\n return $encrypt(data, secretKey, options);\r\n}\r\n\r\n/**\r\n * Encrypts a UTF-8 string using the provided `SecretKey` (throwing).\r\n *\r\n * Output format: \"iv.cipher.tag.\"\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * You scramble a secret message with your special key,\r\n * creating a jumbled code that only someone with the right key can read.\r\n *\r\n * @param data - A UTF-8 string to encrypt.\r\n * @param secretKey - The `SecretKey` object used for encryption.\r\n * @param options.outputEncoding - The encoding format for the output ciphertext (default: `'base64url'`).\r\n * @returns The encrypted string in the specified format.\r\n * @throws {Error} If the input data or key is invalid, or if encryption fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const secretKey = createSecretKey(\"my-secret\");\r\n * const encrypted = encrypt(\"Hello, World!\", secretKey); // \"iv.cipher.tag.\" (Encrypted string)\r\n * ```\r\n */\r\nexport function encrypt(data: string, secretKey: NodeSecretKey, options: EncryptOptions = {}): string {\r\n const { result, error } = $encrypt(data, secretKey, options);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n\r\n/**\r\n * Safely decrypts the input string using the provided `SecretKey` (non-throwing).\r\n *\r\n * Expects input in the format \"iv.cipher.tag.\" and returns the decrypted UTF-8 string.\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * You take a scrambled secret message and use your special key to unscramble it,\r\n * revealing the original message inside.\r\n *\r\n * @param encrypted - The input string to decrypt, in the format \"iv.cipher.tag.\".\r\n * @param secretKey - The `SecretKey` object used for decryption.\r\n * @param options.inputEncoding - The encoding format for the input ciphertext (default: `'base64url'`).\r\n * @returns A `Result` containing the decrypted UTF-8 string or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const secretKey = createSecretKey(\"my-secret\");\r\n * const encrypted = encrypt(\"Hello, World!\", secretKey);\r\n * const {result, error, success} = tryDecrypt(encrypted, secretKey);\r\n *\r\n * if (success) console.log(result); // \"Hello, World!\" (Decrypted string)\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryDecrypt(encrypted: string, secretKey: NodeSecretKey, options: DecryptOptions = {}): Result<string> {\r\n return $decrypt(encrypted, secretKey, options);\r\n}\r\n\r\n/**\r\n * Decrypts the input string using the provided `SecretKey` (throwing).\r\n *\r\n * Expects input in the format \"iv.cipher.tag.\" and returns the decrypted UTF-8 string.\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * You take a scrambled secret message and use your special key to unscramble it,\r\n * revealing the original message inside.\r\n *\r\n * @param encrypted - The input string to decrypt, in the format \"iv.cipher.tag.\".\r\n * @param secretKey - The `SecretKey` object used for decryption.\r\n * @param options.inputEncoding - The encoding format for the input ciphertext (default: `'base64url'`).\r\n * @returns The decrypted UTF-8 string.\r\n * @throws {Error} If the input data or key is invalid, or if decryption fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const secretKey = createSecretKey(\"my-secret\");\r\n * const encrypted = encrypt(\"Hello, World!\", secretKey);\r\n * const decrypted = decrypt(encrypted, secretKey); // \"Hello, World!\" (Decrypted string)\r\n * ```\r\n */\r\nexport function decrypt(encrypted: string, secretKey: NodeSecretKey, options: DecryptOptions = {}): string {\r\n const { result, error } = $decrypt(encrypted, secretKey, options);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n\r\n/**\r\n * Safely encrypts a plain object using the provided `SecretKey` (non-throwing).\r\n *\r\n * Only plain objects (POJOs) are accepted. Class instances, Maps, Sets, etc. are rejected.\r\n *\r\n * Output format: \"iv.cipher.tag.\"\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * Imagine you have a toy box (an object) that you want to keep secret.\r\n * So, you take a picture of your toy box (convert it to JSON), and scramble that with\r\n * your special key, creating a jumbled code that only someone with the right key can read.\r\n *\r\n * @template T - The type of the plain object to encrypt.\r\n * @param obj - A plain object to encrypt.\r\n * @param secretKey - The `SecretKey` object used for encryption.\r\n * @param options.outputEncoding - The encoding format for the output ciphertext (default: `'base64url'`).\r\n * @returns A `Result` containing the encrypted string in the specified format or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const secretKey = createSecretKey(\"my-secret\");\r\n * const {result, error, success} = tryEncryptObj({ a: 1 }, secretKey);\r\n *\r\n * if (success) console.log(result); // \"iv.cipher.tag.\" (Encrypted string)\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryEncryptObj<T extends object = Record<string, unknown>>(\r\n obj: T,\r\n secretKey: NodeSecretKey,\r\n options: EncryptOptions = {},\r\n): Result<string> {\r\n return $encryptObj(obj, secretKey, options);\r\n}\r\n\r\n/**\r\n * Encrypts a plain object using the provided `SecretKey` (throwing).\r\n *\r\n * Only plain objects (POJOs) are accepted. Class instances, Maps, Sets, etc. are rejected.\r\n *\r\n * Output format: \"iv.cipher.tag.\"\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * Imagine you have a toy box (an object) that you want to keep secret.\r\n * So, you take a picture of your toy box (convert it to JSON), and scramble that with\r\n * your special key, creating a jumbled code that only someone with the right key can read.\r\n *\r\n * @template T - The type of the plain object to encrypt.\r\n * @param obj - A plain object to encrypt.\r\n * @param secretKey - The `SecretKey` object used for encryption.\r\n * @param options.outputEncoding - The encoding format for the output ciphertext (default: `'base64url'`).\r\n * @returns The encrypted string in the specified format.\r\n * @throws {Error} If the input data or key is invalid, or if encryption fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const secretKey = createSecretKey(\"my-secret\");\r\n * const encrypted = encryptObj({ a: 1 }, secretKey); // \"iv.cipher.tag.\" (Encrypted string)\r\n * ```\r\n */\r\nexport function encryptObj<T extends object = Record<string, unknown>>(\r\n obj: T,\r\n secretKey: NodeSecretKey,\r\n options: EncryptOptions = {},\r\n): string {\r\n const { result, error } = $encryptObj(obj, secretKey, options);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n\r\n/**\r\n * Safely decrypts an encrypted JSON string into a plain object (non-throwing).\r\n *\r\n * Expects input in the format `\"iv.cipher.tag.\"` and returns a plain object.\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * You rebuild your toy box (an object) by unscrambling the jumbled code (encrypted text),\r\n * using your special key to open it.\r\n *\r\n * @template T - The expected shape of the decrypted object.\r\n * @param encrypted - The encrypted string (format: `\"iv.cipher.tag.\"`).\r\n * @param secretKey - The `SecretKey` used for decryption.\r\n * @param options.inputEncoding - Input ciphertext encoding (default: `'base64url'`).\r\n * @returns A `Result` with the decrypted object on success, or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const secretKey = createSecretKey(\"my-secret\");\r\n * const encrypted = encryptObj({ a: 1 }, secretKey);\r\n * const {result, error, success} = tryDecryptObj<{ a: number }>(encrypted, secretKey);\r\n *\r\n * if (success) console.log(result); // { a: 1 } (Decrypted object)\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryDecryptObj<T extends object = Record<string, unknown>>(\r\n encrypted: string,\r\n secretKey: NodeSecretKey,\r\n options: DecryptOptions = {},\r\n): Result<{ result: T }> {\r\n return $decryptObj<T>(encrypted, secretKey, options);\r\n}\r\n\r\n/**\r\n * Decrypts an encrypted JSON string into a plain object (throwing).\r\n *\r\n * Expects input in the format `\"iv.cipher.tag.\"` and returns a plain object.\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * You rebuild your toy box (an object) by unscrambling the jumbled code (encrypted text),\r\n * using your special key to open it.\r\n *\r\n * @template T - The expected shape of the decrypted object.\r\n * @param encrypted - The encrypted string (format: `\"iv.cipher.tag.\"`).\r\n * @param secretKey - The `SecretKey` used for decryption.\r\n * @param options.inputEncoding - Input ciphertext encoding (default: `'base64url'`).\r\n * @returns The decrypted object.\r\n * @throws {Error} If decryption or JSON parsing fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const secretKey = createSecretKey(\"my-secret\");\r\n * const encrypted = encryptObj({ a: 1 }, secretKey);\r\n * const obj = decryptObj<{ a: number }>(encrypted, secretKey); // obj.a === 1\r\n * ```\r\n */\r\nexport function decryptObj<T extends object = Record<string, unknown>>(\r\n encrypted: string,\r\n secretKey: NodeSecretKey,\r\n options: DecryptOptions = {},\r\n): T {\r\n const { result, error } = $decryptObj<T>(encrypted, secretKey, options);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n\r\n/**\r\n * Safely hashes a UTF-8 string (non-throwing).\r\n *\r\n * Uses the selected digest (default: `'sha256'`) and returns the hash\r\n * in the chosen encoding (default: `'base64url'`).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * Like putting something in a blender and getting a smoothie, you can’t get the original ingredients back,\r\n * but the smoothie is always the same if you use the same ingredients.\r\n *\r\n * @param data - The input string to hash.\r\n * @param options.digest - Hash algorithm (`'sha256' | 'sha384' | 'sha512'`, default: `'sha256'`).\r\n * @param options.outputEncoding - Output encoding (`'base64' | 'base64url' | 'hex'`, default: `'base64url'`).\r\n * @returns A `Result` with the hash string or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const {result, error, success} = tryHash(\"my data\");\r\n *\r\n * if (success) console.log(result); // \"...\" (Hashed string)\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryHash(data: string, options: HashOptions = {}): Result<string> {\r\n return $hash(data, options);\r\n}\r\n\r\n/**\r\n * Hashes a UTF-8 string (throwing).\r\n *\r\n * Uses the selected digest (default: `'sha256'`) and returns the hash\r\n * in the chosen encoding (default: `'base64url'`).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * Like putting something in a blender and getting a smoothie, you can’t get the original ingredients back,\r\n * but the smoothie is always the same if you use the same ingredients.\r\n *\r\n * @param data - The input string to hash.\r\n * @param options.digest - Hash algorithm (`'sha256' | 'sha384' | 'sha512'`; default: `'sha256'`).\r\n * @param options.outputEncoding - Output encoding (`'base64' | 'base64url' | 'hex'`; default: `'base64url'`).\r\n * @returns The hashed string.\r\n * @throws {Error} If input is invalid or hashing fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const hash = hash(\"my data\"); // \"...\" (Hashed string)\r\n * ```\r\n */\r\nexport function hash(data: string, options: HashOptions = {}): string {\r\n const { result, error } = $hash(data, options);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n\r\n/**\r\n * Safely hashes a password using PBKDF2 (non-throwing).\r\n *\r\n * Uses strong defaults (`sha512`, 320k iterations, 64-byte key, 16-byte salt) and\r\n * returns `{ hash, salt }` encoded (default: `'base64url'`).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * We take your password, mix in some random salt, and stir many times.\r\n * The result is a super-secret soup that’s hard to copy.\r\n *\r\n * @param password - The password to hash.\r\n * @param options.digest - Hash algorithm (`'sha256' | 'sha384' | 'sha512'`; default: `'sha512'`).\r\n * @param options.outputEncoding - Output encoding (`'base64' | 'base64url' | 'hex'`; default: `'base64url'`).\r\n * @param options.saltLength - Length of the random salt in bytes (default: `16` bytes, min: `8` bytes).\r\n * @param options.iterations - Number of iterations (default: `320000`, min: `1000`).\r\n * @param options.keyLength - Length of the derived key in bytes (default: `64` bytes, min: `16` bytes).\r\n * @returns A `Result` with `{ result, salt }` or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const {result, salt, error, success} = tryHashPassword(\"my-password\");\r\n *\r\n * if (success) console.log(result, salt); // \"...\" (Hashed password string), \"...\" (salt)\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryHashPassword(\r\n password: string,\r\n options: HashPasswordOptions = {},\r\n): Result<{ result: string; salt: string }> {\r\n return $hashPassword(password, options);\r\n}\r\n\r\n/**\r\n * Hashes a password using PBKDF2 (throwing).\r\n *\r\n * Uses strong defaults (`sha512`, 320k iterations, 64-byte key, 16-byte salt) and\r\n * returns `{ hash, salt }` encoded (default: `'base64url'`).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * We take your password, mix in some random salt, and stir many times.\r\n * The result is a super-secret soup that’s hard to copy.\r\n *\r\n * @param password - The password to hash.\r\n * @param options.digest - Hash algorithm (`'sha256' | 'sha384' | 'sha512'`; default: `'sha512'`).\r\n * @param options.outputEncoding - Output encoding (`'base64' | 'base64url' | 'hex'`; default: `'base64url'`).\r\n * @param options.saltLength - Length of the random salt in bytes (default: `16` bytes, min: `8` bytes).\r\n * @param options.iterations - Number of iterations (default: `320000`, min: `1000`).\r\n * @param options.keyLength - Length of the derived key in bytes (default: `64` bytes, min: `16` bytes).\r\n * @returns `{ result, salt }` for storage.\r\n * @throws {Error} If inputs are invalid or hashing fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const { result, salt } = hashPassword(\"my-password\"); // \"...\" (Hashed password string), \"...\" (salt)\r\n * ```\r\n */\r\nexport function hashPassword(password: string, options: HashPasswordOptions = {}): { result: string; salt: string } {\r\n const { result, salt, error } = $hashPassword(password, options);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return { result, salt };\r\n}\r\n\r\n/**\r\n * Verifies a password against a stored PBKDF2 hash (non-throwing).\r\n *\r\n * Re-derives the key using the same parameters and compares in constant time, to prevent timing attacks.\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * We follow the same recipe as when we made the secret.\r\n * If the new soup tastes exactly the same, the password is correct.\r\n *\r\n * @param password - The plain password to verify.\r\n * @param hashedPassword - The stored hash (encoded).\r\n * @param salt - The stored salt (encoded).\r\n * @param options.digest - Hash algorithm used during hashing (`'sha256' | 'sha384' | 'sha512'`; default: `'sha512'`).\r\n * @param options.inputEncoding - Encoding of the stored hash and salt (`'base64' | 'base64url' | 'hex'`; default: `'base64url'`).\r\n * @param options.iterations - Number of iterations used during hashing (default: `320000`).\r\n * @param options.keyLength - Length of the derived key in bytes used during hashing (default: `64` bytes).\r\n * @returns `true` if the password matches, otherwise `false`.\r\n *\r\n * @example\r\n * ```ts\r\n * const { result, salt } = hashPassword(\"my-password\");\r\n *\r\n * verifyPassword(\"my-password\", result, salt); // true\r\n * verifyPassword(\"wrong-password\", result, salt); // false\r\n * ```\r\n */\r\nexport function verifyPassword(\r\n password: string,\r\n hashedPassword: string,\r\n salt: string,\r\n options: VerifyPasswordOptions = {},\r\n): boolean {\r\n return $verifyPassword(password, hashedPassword, salt, options);\r\n}\r\n\r\n/**\r\n * Safely converts a string to a Node.js `Buffer` using the specified encoding (non-throwing).\r\n *\r\n * Supported encodings: `'base64' | 'base64url' | 'hex' | 'utf8' | 'latin1'` (default: `'utf8'`).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * This turns your words into tiny computer building blocks (bytes) so computers can work with them.\r\n *\r\n * @param data - The input string to convert.\r\n * @param inputEncoding - The encoding of the input string (default: `'utf8'`).\r\n * @returns A `Result` with `{ result: Buffer }` or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const {result, error, success} = tryConvertStrToBytes(\"Hello\", \"utf8\");\r\n *\r\n * if (success) console.log(result); // <Buffer ...>\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryConvertStrToBytes(data: string, inputEncoding: Encoding = \"utf8\"): Result<{ result: Buffer }> {\r\n return $convertStrToBytes(data, inputEncoding);\r\n}\r\n\r\n/**\r\n * Converts a string to a Node.js `Buffer` using the specified encoding (throwing).\r\n *\r\n * Supported encodings: `'base64' | 'base64url' | 'hex' | 'utf8' | 'latin1'` (default: `'utf8'`).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * This turns your words into tiny computer building blocks (bytes) so computers can work with them.\r\n *\r\n * @param data - The input string to convert.\r\n * @param inputEncoding - The encoding of the input string (default: `'utf8'`).\r\n * @returns A `Buffer` containing the bytes.\r\n * @throws {Error} If input is invalid or conversion fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const bytes = convertStrToBytes(\"Hello\", \"utf8\"); // <Buffer ...>\r\n * ```\r\n */\r\nexport function convertStrToBytes(data: string, inputEncoding: Encoding = \"utf8\"): Buffer {\r\n const { result, error } = $convertStrToBytes(data, inputEncoding);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n\r\n/**\r\n * Safely converts a Node.js `Buffer` to a string using the specified encoding (non-throwing).\r\n *\r\n * Supported encodings: `'base64' | 'base64url' | 'hex' | 'utf8' | 'latin1'` (default: `'utf8'`).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * This turns the tiny computer building blocks (bytes) back into a readable sentence.\r\n *\r\n * @param data - The `Buffer` to convert.\r\n * @param outputEncoding - The output encoding (default: `'utf8'`).\r\n * @returns A `Result` with the string or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const bytes = convertStrToBytes(\"Hello\", \"utf8\"); // <Buffer ...>\r\n * const {result, error, success} = tryConvertBytesToStr(bytes, \"utf8\");\r\n *\r\n * if (success) console.log(result); // \"Hello\"\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryConvertBytesToStr(data: Buffer, outputEncoding: Encoding = \"utf8\"): Result<string> {\r\n return $convertBytesToStr(data, outputEncoding);\r\n}\r\n\r\n/**\r\n * Converts a Node.js `Buffer` to a string using the specified encoding (throwing).\r\n *\r\n * Supported encodings: `'base64' | 'base64url' | 'hex' | 'utf8' | 'latin1'` (default: `'utf8'`).\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * This turns the tiny computer building blocks (bytes) back into a readable sentence.\r\n *\r\n * @param data - The `Buffer` to convert.\r\n * @param outputEncoding - The output encoding (default: `'utf8'`).\r\n * @returns The encoded string.\r\n * @throws {Error} If input is invalid or conversion fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const bytes = convertStrToBytes(\"Hello\", \"utf8\"); // <Buffer ...>\r\n * const str = convertBytesToStr(bytes, \"utf8\"); // \"Hello\"\r\n * ```\r\n */\r\nexport function convertBytesToStr(data: Buffer, outputEncoding: Encoding = \"utf8\"): string {\r\n const { result, error } = $convertBytesToStr(data, outputEncoding);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n\r\n/**\r\n * Safely converts text between encodings (non-throwing).\r\n *\r\n * Example: convert `'utf8'` text to `'base64url'`, or `'hex'` to `'utf8'`.\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * It’s like translating your sentence from one alphabet to another.\r\n *\r\n * @param data - The input string to convert.\r\n * @param from - The current encoding of `data`.\r\n * @param to - The target encoding for `data`.\r\n * @returns A `Result` with a string or an error.\r\n *\r\n * @example\r\n * ```ts\r\n * const {result, error, success} = tryConvertEncoding(\"Hello\", \"utf8\", \"base64url\");\r\n *\r\n * if (success) console.log(result); // \"...\" (Base64url encoded string)\r\n * else console.error(error); // { message: \"...\", description: \"...\" }\r\n * ```\r\n */\r\nexport function tryConvertEncoding(data: string, from: Encoding, to: Encoding): Result<string> {\r\n return $convertEncoding(data, from, to);\r\n}\r\n\r\n/**\r\n * Converts text between encodings (throwing).\r\n *\r\n * Example: convert `'utf8'` text to `'base64url'`, or `'hex'` to `'utf8'`.\r\n *\r\n * ### 🍼 Explain Like I'm Five\r\n * It’s like translating your sentence from one alphabet to another.\r\n *\r\n * @param data - The input string to convert.\r\n * @param from - The current encoding of `data`.\r\n * @param to - The target encoding for `data`.\r\n * @returns The converted string.\r\n * @throws {Error} If encodings are invalid or conversion fails.\r\n *\r\n * @example\r\n * ```ts\r\n * const encoded = convertEncoding(\"Hello\", \"utf8\", \"base64url\"); // \"...\" (Base64url encoded string)\r\n * ```\r\n */\r\nexport function convertEncoding(data: string, from: Encoding, to: Encoding): string {\r\n const { result, error } = $convertEncoding(data, from, to);\r\n if (error) throw new Error($fmtResultErr(error));\r\n return result;\r\n}\r\n","import { Buffer } from \"node:buffer\";\r\nimport { ENCODING } from \"~/helpers/consts\";\r\nimport { $err, $fmtError, $ok, type Result } from \"~/helpers/error\";\r\nimport type { Encoding } from \"~/helpers/types\";\r\nimport { $isStr } from \"~/helpers/validate\";\r\n\r\nexport function $convertStrToBytes(data: string, inputEncoding: Encoding = \"utf8\"): Result<{ result: Buffer }> {\r\n if (!$isStr(data)) {\r\n return $err({\r\n msg: \"Crypto NodeJS API - String to Bytes: Empty data\",\r\n desc: \"Data must be a non-empty string\",\r\n });\r\n }\r\n if (!ENCODING.includes(inputEncoding)) {\r\n return $err({\r\n msg: `Crypto NodeJS API - String to Bytes: Unsupported encoding: ${inputEncoding}`,\r\n desc: \"Use base64, base64url, hex, utf8, or latin1\",\r\n });\r\n }\r\n try {\r\n return $ok({ result: Buffer.from(data, inputEncoding) });\r\n } catch (error) {\r\n return $err({ msg: \"Crypto NodeJS API - String to Bytes: Failed to convert data\", desc: $fmtError(error) });\r\n }\r\n}\r\n\r\nexport function $convertBytesToStr(data: Buffer, outputEncoding: Encoding = \"utf8\"): Result<string> {\r\n if (!(data instanceof Buffer)) {\r\n return $err({\r\n msg: \"Crypto NodeJS API - Bytes to String: Invalid data type\",\r\n desc: \"Data must be a Buffer\",\r\n });\r\n }\r\n if (!ENCODING.includes(outputEncoding)) {\r\n return $err({\r\n msg: `Crypto NodeJS API - Bytes to String: Unsupported encoding: ${outputEncoding}`,\r\n desc: \"Use base64, base64url, hex, utf8, or latin1\",\r\n });\r\n }\r\n try {\r\n return $ok(Buffer.from(data).toString(outputEncoding));\r\n } catch (error) {\r\n return $err({ msg: \"Crypto NodeJS API - Bytes to String: Failed to convert data\", desc: $fmtError(error) });\r\n }\r\n}\r\n\r\nexport function $convertEncoding(data: string, from: Encoding, to: Encoding): Result<string> {\r\n if (!$isStr(data)) {\r\n return $err({\r\n msg: \"Crypto NodeJS API - Convert Format: Empty data\",\r\n desc: \"Data must be a non-empty string\",\r\n });\r\n }\r\n\r\n if (!ENCODING.includes(from) || !ENCODING.includes(to)) {\r\n return $err({\r\n msg: `Crypto NodeJS API - Convert Format: Unsupported encoding: from ${from} to ${to}`,\r\n desc: \"Use base64, base64url, hex, utf8, or latin1\",\r\n });\r\n }\r\n\r\n const bytes = $convertStrToBytes(data, from);\r\n if (bytes.error) return $err({ msg: bytes.error.message, desc: bytes.error.description });\r\n\r\n const str = $convertBytesToStr(bytes.result, to);\r\n if (str.error) return $err({ msg: str.error.message, desc: str.error.description });\r\n\r\n return $ok({ result: str.result });\r\n}\r\n","import { Buffer } from \"node:buffer\";\r\nimport nodeCrypto from \"node:crypto\";\r\nimport { CIPHER_ENCODING, DIGEST_ALGORITHMS, ENCRYPTION_ALGORITHMS } from \"~/helpers/consts\";\r\nimport { $err, $fmtError, $fmtResultErr, $ok, type Result, title } from \"~/helpers/error\";\r\nimport { $parseToObj, $stringifyObj } from \"~/helpers/object\";\r\nimport type {\r\n CreateSecretKeyOptions,\r\n DecryptOptions,\r\n EncryptOptions,\r\n HashOptions,\r\n HashPasswordOptions,\r\n NodeSecretKey,\r\n VerifyPasswordOptions,\r\n} from \"~/helpers/types\";\r\nimport { $isPlainObj, $isSecretKey, $isStr, matchEncryptedPattern } from \"~/helpers/validate\";\r\nimport { $convertBytesToStr, $convertStrToBytes } from \"./node-encode\";\r\n\r\nexport function $generateUuid(): Result<string> {\r\n try {\r\n return $ok(nodeCrypto.randomUUID());\r\n } catch (error) {\r\n return $err({ msg: `${title(\"node\", \"UUID Generation\")}: Failed to generate UUID`, desc: $fmtError(error) });\r\n }\r\n}\r\n\r\nexport function $createSecretKey(secret: string, options: CreateSecretKeyOptions): Result<{ result: NodeSecretKey }> {\r\n if (!$isStr(secret, 8)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Key Generation\")}: Empty Secret`,\r\n desc: \"Secret must be a non-empty string with at least 8 characters\",\r\n });\r\n }\r\n\r\n if (!$isPlainObj<CreateSecretKeyOptions>(options)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Key Generation\")}: Invalid options`,\r\n desc: \"Options must be an object\",\r\n });\r\n }\r\n\r\n const algorithm = options.algorithm ?? \"aes256gcm\";\r\n if (!(algorithm in ENCRYPTION_ALGORITHMS)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Key Generation\")}: Unsupported algorithm: ${algorithm}`,\r\n desc: `Supported algorithms are: ${Object.keys(ENCRYPTION_ALGORITHMS).join(\", \")}`,\r\n });\r\n }\r\n\r\n const digest = options.digest ?? \"sha256\";\r\n if (!(digest in DIGEST_ALGORITHMS)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Key Generation\")}: Unsupported digest: ${digest}`,\r\n desc: `Supported digests are: ${Object.keys(DIGEST_ALGORITHMS).join(\", \")}`,\r\n });\r\n }\r\n\r\n const salt = options.salt ?? \"cipher-kit-salt\";\r\n if (!$isStr(salt, 8)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Key Generation\")}: Weak salt`,\r\n desc: \"Salt must be a non-empty string with at least 8 characters\",\r\n });\r\n }\r\n\r\n const info = options.info ?? \"cipher-kit\";\r\n if (!$isStr(info)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Key Generation\")}: Invalid info`,\r\n desc: \"Info must be a non-empty string\",\r\n });\r\n }\r\n\r\n const encryptAlgo = ENCRYPTION_ALGORITHMS[algorithm];\r\n const digestAlgo = DIGEST_ALGORITHMS[digest];\r\n\r\n try {\r\n const derivedKey = nodeCrypto.hkdfSync(\r\n digestAlgo.node,\r\n secret.normalize(\"NFKC\"),\r\n salt.normalize(\"NFKC\"),\r\n info.normalize(\"NFKC\"),\r\n encryptAlgo.keyBytes,\r\n );\r\n const key = nodeCrypto.createSecretKey(Buffer.from(derivedKey));\r\n const secretKey = Object.freeze({\r\n platform: \"node\",\r\n digest: digest,\r\n algorithm: algorithm,\r\n key: key,\r\n }) as NodeSecretKey;\r\n\r\n return $ok({ result: secretKey });\r\n } catch (error) {\r\n return $err({ msg: `${title(\"node\", \"Key Generation\")}: Failed to create secret key`, desc: $fmtError(error) });\r\n }\r\n}\r\n\r\nexport function $encrypt(data: string, secretKey: NodeSecretKey, options: EncryptOptions): Result<string> {\r\n if (!$isStr(data)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Encryption\")}: Empty data for encryption`,\r\n desc: \"Data must be a non-empty string\",\r\n });\r\n }\r\n\r\n if (!$isPlainObj<EncryptOptions>(options)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Encryption\")}: Invalid options`,\r\n desc: \"Options must be an object\",\r\n });\r\n }\r\n\r\n const outputEncoding = options.outputEncoding ?? \"base64url\";\r\n if (!CIPHER_ENCODING.includes(outputEncoding)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Encryption\")}: Unsupported output encoding: ${outputEncoding}`,\r\n desc: \"Use base64, base64url, or hex\",\r\n });\r\n }\r\n\r\n const injectedKey = $isSecretKey(secretKey, \"node\");\r\n if (!injectedKey) {\r\n return $err({\r\n msg: `${title(\"node\", \"Encryption\")}: Invalid Secret Key`,\r\n desc: \"Expected a Node SecretKey\",\r\n });\r\n }\r\n\r\n const { result, error } = $convertStrToBytes(data, \"utf8\");\r\n if (error) return $err(error);\r\n\r\n try {\r\n const iv = nodeCrypto.randomBytes(injectedKey.injected.ivLength);\r\n const cipher = nodeCrypto.createCipheriv(injectedKey.injected.node, injectedKey.key, iv);\r\n const encrypted = Buffer.concat([cipher.update(result), cipher.final()]);\r\n const tag = cipher.getAuthTag();\r\n\r\n const ivStr = $convertBytesToStr(iv, outputEncoding);\r\n const cipherStr = $convertBytesToStr(encrypted, outputEncoding);\r\n const tagStr = $convertBytesToStr(tag, outputEncoding);\r\n\r\n if (ivStr.error || cipherStr.error || tagStr.error) {\r\n return $err({\r\n msg: \"Crypto NodeJS API - Encryption: Failed to convert IV or encrypted data or tag\",\r\n desc: `Conversion error: ${$fmtResultErr(ivStr.error || cipherStr.error || tagStr.error)}`,\r\n });\r\n }\r\n\r\n return $ok(`${ivStr.result}.${cipherStr.result}.${tagStr.result}.`);\r\n } catch (error) {\r\n return $err({ msg: `${title(\"node\", \"Encryption\")}: Failed to encrypt data`, desc: $fmtError(error) });\r\n }\r\n}\r\n\r\nexport function $decrypt(encrypted: string, secretKey: NodeSecretKey, options: DecryptOptions): Result<string> {\r\n if (!matchEncryptedPattern(encrypted, \"node\")) {\r\n return $err({\r\n msg: `${title(\"node\", \"Decryption\")}: Invalid encrypted data format`,\r\n desc: 'Encrypted data must be in the format \"iv.cipher.tag.\"',\r\n });\r\n }\r\n\r\n if (!$isPlainObj<DecryptOptions>(options)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Decryption\")}: Invalid options`,\r\n desc: \"Options must be an object\",\r\n });\r\n }\r\n\r\n const inputEncoding = options.inputEncoding ?? \"base64url\";\r\n if (!CIPHER_ENCODING.includes(inputEncoding)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Decryption\")}: Unsupported input encoding: ${inputEncoding}`,\r\n desc: \"Use base64, base64url, or hex\",\r\n });\r\n }\r\n\r\n const [iv, cipher, tag] = encrypted.split(\".\", 4);\r\n if (!$isStr(iv) || !$isStr(cipher) || !$isStr(tag)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Decryption\")}: Invalid encrypted data`,\r\n desc: \"Encrypted data must contain valid IV, encrypted data, and tag components\",\r\n });\r\n }\r\n\r\n const injectedKey = $isSecretKey(secretKey, \"node\");\r\n if (!injectedKey) {\r\n return $err({\r\n msg: \"Crypto NodeJS API - Decryption: Invalid Secret Key\",\r\n desc: \"Expected a Node SecretKey\",\r\n });\r\n }\r\n\r\n const ivBytes = $convertStrToBytes(iv, inputEncoding);\r\n const cipherBytes = $convertStrToBytes(cipher, inputEncoding);\r\n const tagBytes = $convertStrToBytes(tag, inputEncoding);\r\n\r\n if (ivBytes.error || cipherBytes.error || tagBytes.error) {\r\n return $err({\r\n msg: `${title(\"node\", \"Decryption\")}: Failed to convert IV or encrypted data or tag`,\r\n desc: `Conversion error: ${$fmtResultErr(ivBytes.error || cipherBytes.error || tagBytes.error)}`,\r\n });\r\n }\r\n\r\n try {\r\n const decipher = nodeCrypto.createDecipheriv(injectedKey.injected.node, injectedKey.key, ivBytes.result);\r\n decipher.setAuthTag(tagBytes.result);\r\n const decrypted = Buffer.concat([decipher.update(cipherBytes.result), decipher.final()]);\r\n\r\n return $convertBytesToStr(decrypted, \"utf8\");\r\n } catch (error) {\r\n return $err({ msg: `${title(\"node\", \"Decryption\")}: Failed to decrypt data`, desc: $fmtError(error) });\r\n }\r\n}\r\nexport function $encryptObj<T extends object = Record<string, unknown>>(\r\n data: T,\r\n secretKey: NodeSecretKey,\r\n options: EncryptOptions,\r\n): Result<string> {\r\n const { result, error } = $stringifyObj(data);\r\n if (error) return $err(error);\r\n return $encrypt(result, secretKey, options);\r\n}\r\n\r\nexport function $decryptObj<T extends object = Record<string, unknown>>(\r\n encrypted: string,\r\n secretKey: NodeSecretKey,\r\n options: DecryptOptions,\r\n): Result<{ result: T }> {\r\n const { result, error } = $decrypt(encrypted, secretKey, options);\r\n if (error) return $err(error);\r\n return $parseToObj<T>(result);\r\n}\r\n\r\nexport function $hash(data: string, options: HashOptions = {}): Result<string> {\r\n if (!$isStr(data)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Hashing\")}: Empty data for hashing`,\r\n desc: \"Data must be a non-empty string\",\r\n });\r\n }\r\n\r\n if (!$isPlainObj<HashOptions>(options)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Hashing\")}: Invalid options`,\r\n desc: \"Options must be an object\",\r\n });\r\n }\r\n\r\n const outputEncoding = options.outputEncoding ?? \"base64url\";\r\n if (!CIPHER_ENCODING.includes(outputEncoding)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Hashing\")}: Unsupported output encoding: ${outputEncoding}`,\r\n desc: \"Use base64, base64url, or hex\",\r\n });\r\n }\r\n\r\n const digest = options.digest ?? \"sha256\";\r\n if (!(digest in DIGEST_ALGORITHMS)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Hashing\")}: Unsupported digest: ${digest}`,\r\n desc: `Supported digests are: ${Object.keys(DIGEST_ALGORITHMS).join(\", \")}`,\r\n });\r\n }\r\n const digestAlgo = DIGEST_ALGORITHMS[digest];\r\n\r\n const { result, error } = $convertStrToBytes(data, \"utf8\");\r\n if (error) return $err(error);\r\n\r\n try {\r\n const hashed = nodeCrypto.createHash(digestAlgo.node).update(result).digest();\r\n return $convertBytesToStr(hashed, outputEncoding);\r\n } catch (error) {\r\n return $err({ msg: `${title(\"node\", \"Hashing\")}: Failed to hash data with Crypto NodeJS`, desc: $fmtError(error) });\r\n }\r\n}\r\n\r\nexport function $hashPassword(\r\n password: string,\r\n options: HashPasswordOptions,\r\n): Result<{ result: string; salt: string }> {\r\n if (!$isStr(password)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Password Hashing\")}: Empty password for hashing`,\r\n desc: \"Password must be a non-empty string\",\r\n });\r\n }\r\n\r\n if (!$isPlainObj<HashPasswordOptions>(options)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Password Hashing\")}: Invalid options`,\r\n desc: \"Options must be an object\",\r\n });\r\n }\r\n\r\n const digest = options.digest ?? \"sha512\";\r\n if (!(digest in DIGEST_ALGORITHMS)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Password Hashing\")}: Unsupported digest: ${digest}`,\r\n desc: `Supported digests are: ${Object.keys(DIGEST_ALGORITHMS).join(\", \")}`,\r\n });\r\n }\r\n const digestAlgo = DIGEST_ALGORITHMS[digest];\r\n\r\n const outputEncoding = options.outputEncoding ?? \"base64url\";\r\n if (!CIPHER_ENCODING.includes(outputEncoding)) {\r\n return $err({\r\n msg: `${title(\"node\", \"Password Hashing\")}: Unsupported encoding: ${outputEncoding}`,\r\n desc: \"Use base64, base64url, or hex\",\r\n });\r\n }\r\n\r\n const saltLength = options.saltLength ?? 16;\r\n if (typeof saltLength !== \"number\" || saltLength < 8) {\r\n return $err({\r\n msg: `${title(\"node\", \"Password Hashing\")}: Weak salt length`,\r\n desc: \"Salt length must be a number and at least 8 bytes (recommended 16 or more)\",\r\n });\r\n }\r\n\r\n const iterations = options.iterations ?? 320_000;\r\n if (typeof iterations !== \"number\" || iterations < 1000) {\r\n return $err({\r\n msg: `${title(\"node\", \"Password Hashing\")}: Weak iterations count`,\r\n desc: \"Iterations must be a number and at least 1000 (recommended 320,000 or more)\",\r\n });\r\n }\r\n\r\n const keyLength = options.keyLength ?? 64;\r\n if (typeof keyLength !== \"number\" || keyLength < 16) {\r\n return $err({\r\n msg: `${title(\"node\", \"Password Hashing\")}: Invalid key length`,\r\n desc: \"Key length must be a number and at least 16 bytes (recommended 64 or more)\",\r\n });\r\n }\r\n\r\n try {\r\n const salt = nodeCrypto.randomBytes(saltLength);\r\n const hash = nodeCrypto.pbkdf2Sync(password.normalize(\"NFKC\"), salt, iterations, keyLength, digestAlgo.node);\r\n\r\n return $ok({ result: hash.toString(outputEncoding), salt: salt.toString(outputEncoding) });\r\n } catch (error) {\r\n return $err({ msg: `${title(\"node\", \"Password Hashing\")}: Failed to hash password`, desc: $fmtError(error) });\r\n }\r\n}\r\n\r\nexport function $verifyPassword(\r\n password: string,\r\n hashedPassword: string,\r\n salt: string,\r\n options: VerifyPasswordOptions,\r\n): boolean {\r\n if (!$isStr(password) || !$isStr(hashedPassword) || !$isStr(salt) || !$isPlainObj<VerifyPasswordOptions>(options)) {\r\n return false;\r\n }\r\n\r\n const digest = options.digest ?? \"sha512\";\r\n if (!(digest in DIGEST_ALGORITHMS)) return false;\r\n const digestAlgo = DIGEST_ALGORITHMS[digest];\r\n\r\n const inputEncoding = options.inputEncoding ?? \"base64url\";\r\n if (!CIPHER_ENCODING.includes(inputEncoding)) return false;\r\n\r\n const iterations = options.iterations ?? 320_000;\r\n if (typeof iterations !== \"number\" || iterations < 1000) return false;\r\n\r\n const keyLength = options.keyLength ?? 64;\r\n if (typeof keyLength !== \"number\" || keyLength < 16) return false;\r\n\r\n const saltBytes = $convertStrToBytes(salt, inputEncoding);\r\n if (saltBytes.error) return false;\r\n\r\n const hashedPasswordBytes = $convertStrToBytes(hashedPassword, inputEncoding);\r\n if (hashedPasswordBytes.error) return false;\r\n\r\n try {\r\n return nodeCrypto.timingSafeEqual(\r\n nodeCrypto.pbkdf2Sync(password.normalize(\"NFKC\"), saltBytes.result, iterations, keyLength, digestAlgo.node),\r\n hashedPasswordBytes.result,\r\n );\r\n } catch {\r\n return false;\r\n }\r\n}\r\n"]}
|
|
@@ -1,23 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { R as Result, e as CreateSecretKeyOptions, N as NodeSecretKey, f as EncryptOptions, g as DecryptOptions, H as HashOptions, h as HashPasswordOptions, V as VerifyPasswordOptions, c as Encoding } from './validate-lkJAHCeJ.js';
|
|
2
2
|
import { Buffer } from 'node:buffer';
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
* Type guard to check if the provided value is a SecretKey object for Node.js environment.
|
|
6
|
-
*
|
|
7
|
-
* ### 🍼 Explain Like I'm Five
|
|
8
|
-
* Checking if the key in your hand is the right kind of key for the lock.
|
|
9
|
-
*
|
|
10
|
-
* @param x - The value to check.
|
|
11
|
-
* @returns True if the value is a SecretKey object for Node.js, false otherwise.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts
|
|
15
|
-
* isNodeSecretKey(nodeKey); // true
|
|
16
|
-
* isNodeSecretKey(webKey); // false
|
|
17
|
-
* isNodeSecretKey({}); // false
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
declare function isNodeSecretKey(x: unknown): x is SecretKey<"node">;
|
|
21
4
|
/**
|
|
22
5
|
* Safely generates a UUID (v4) (non-throwing).
|
|
23
6
|
*
|
|
@@ -77,7 +60,7 @@ declare function generateUuid(): string;
|
|
|
77
60
|
* ```
|
|
78
61
|
*/
|
|
79
62
|
declare function tryCreateSecretKey(secret: string, options?: CreateSecretKeyOptions): Result<{
|
|
80
|
-
result:
|
|
63
|
+
result: NodeSecretKey;
|
|
81
64
|
}>;
|
|
82
65
|
/**
|
|
83
66
|
* Derives a `SecretKey` from the provided string for encryption/decryption (throwing).
|
|
@@ -101,7 +84,7 @@ declare function tryCreateSecretKey(secret: string, options?: CreateSecretKeyOpt
|
|
|
101
84
|
* const secretKey = createSecretKey("my-secret"); // SecretKey object
|
|
102
85
|
* ```
|
|
103
86
|
*/
|
|
104
|
-
declare function createSecretKey(secret: string, options?: CreateSecretKeyOptions):
|
|
87
|
+
declare function createSecretKey(secret: string, options?: CreateSecretKeyOptions): NodeSecretKey;
|
|
105
88
|
/**
|
|
106
89
|
* Safely encrypts a UTF-8 string using the provided `SecretKey` (non-throwing).
|
|
107
90
|
*
|
|
@@ -125,7 +108,7 @@ declare function createSecretKey(secret: string, options?: CreateSecretKeyOption
|
|
|
125
108
|
* else console.error(error); // { message: "...", description: "..." }
|
|
126
109
|
* ```
|
|
127
110
|
*/
|
|
128
|
-
declare function tryEncrypt(data: string, secretKey:
|
|
111
|
+
declare function tryEncrypt(data: string, secretKey: NodeSecretKey, options?: EncryptOptions): Result<string>;
|
|
129
112
|
/**
|
|
130
113
|
* Encrypts a UTF-8 string using the provided `SecretKey` (throwing).
|
|
131
114
|
*
|
|
@@ -147,7 +130,7 @@ declare function tryEncrypt(data: string, secretKey: SecretKey<"node">, options?
|
|
|
147
130
|
* const encrypted = encrypt("Hello, World!", secretKey); // "iv.cipher.tag." (Encrypted string)
|
|
148
131
|
* ```
|
|
149
132
|
*/
|
|
150
|
-
declare function encrypt(data: string, secretKey:
|
|
133
|
+
declare function encrypt(data: string, secretKey: NodeSecretKey, options?: EncryptOptions): string;
|
|
151
134
|
/**
|
|
152
135
|
* Safely decrypts the input string using the provided `SecretKey` (non-throwing).
|
|
153
136
|
*
|
|
@@ -172,7 +155,7 @@ declare function encrypt(data: string, secretKey: SecretKey<"node">, options?: E
|
|
|
172
155
|
* else console.error(error); // { message: "...", description: "..." }
|
|
173
156
|
* ```
|
|
174
157
|
*/
|
|
175
|
-
declare function tryDecrypt(encrypted: string, secretKey:
|
|
158
|
+
declare function tryDecrypt(encrypted: string, secretKey: NodeSecretKey, options?: DecryptOptions): Result<string>;
|
|
176
159
|
/**
|
|
177
160
|
* Decrypts the input string using the provided `SecretKey` (throwing).
|
|
178
161
|
*
|
|
@@ -195,7 +178,7 @@ declare function tryDecrypt(encrypted: string, secretKey: SecretKey<"node">, opt
|
|
|
195
178
|
* const decrypted = decrypt(encrypted, secretKey); // "Hello, World!" (Decrypted string)
|
|
196
179
|
* ```
|
|
197
180
|
*/
|
|
198
|
-
declare function decrypt(encrypted: string, secretKey:
|
|
181
|
+
declare function decrypt(encrypted: string, secretKey: NodeSecretKey, options?: DecryptOptions): string;
|
|
199
182
|
/**
|
|
200
183
|
* Safely encrypts a plain object using the provided `SecretKey` (non-throwing).
|
|
201
184
|
*
|
|
@@ -223,7 +206,7 @@ declare function decrypt(encrypted: string, secretKey: SecretKey<"node">, option
|
|
|
223
206
|
* else console.error(error); // { message: "...", description: "..." }
|
|
224
207
|
* ```
|
|
225
208
|
*/
|
|
226
|
-
declare function tryEncryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey:
|
|
209
|
+
declare function tryEncryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey: NodeSecretKey, options?: EncryptOptions): Result<string>;
|
|
227
210
|
/**
|
|
228
211
|
* Encrypts a plain object using the provided `SecretKey` (throwing).
|
|
229
212
|
*
|
|
@@ -249,7 +232,7 @@ declare function tryEncryptObj<T extends object = Record<string, unknown>>(obj:
|
|
|
249
232
|
* const encrypted = encryptObj({ a: 1 }, secretKey); // "iv.cipher.tag." (Encrypted string)
|
|
250
233
|
* ```
|
|
251
234
|
*/
|
|
252
|
-
declare function encryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey:
|
|
235
|
+
declare function encryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey: NodeSecretKey, options?: EncryptOptions): string;
|
|
253
236
|
/**
|
|
254
237
|
* Safely decrypts an encrypted JSON string into a plain object (non-throwing).
|
|
255
238
|
*
|
|
@@ -275,7 +258,7 @@ declare function encryptObj<T extends object = Record<string, unknown>>(obj: T,
|
|
|
275
258
|
* else console.error(error); // { message: "...", description: "..." }
|
|
276
259
|
* ```
|
|
277
260
|
*/
|
|
278
|
-
declare function tryDecryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey:
|
|
261
|
+
declare function tryDecryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey: NodeSecretKey, options?: DecryptOptions): Result<{
|
|
279
262
|
result: T;
|
|
280
263
|
}>;
|
|
281
264
|
/**
|
|
@@ -301,7 +284,7 @@ declare function tryDecryptObj<T extends object = Record<string, unknown>>(encry
|
|
|
301
284
|
* const obj = decryptObj<{ a: number }>(encrypted, secretKey); // obj.a === 1
|
|
302
285
|
* ```
|
|
303
286
|
*/
|
|
304
|
-
declare function decryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey:
|
|
287
|
+
declare function decryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey: NodeSecretKey, options?: DecryptOptions): T;
|
|
305
288
|
/**
|
|
306
289
|
* Safely hashes a UTF-8 string (non-throwing).
|
|
307
290
|
*
|
|
@@ -571,7 +554,6 @@ declare const nodeCryptoKit_encryptObj: typeof encryptObj;
|
|
|
571
554
|
declare const nodeCryptoKit_generateUuid: typeof generateUuid;
|
|
572
555
|
declare const nodeCryptoKit_hash: typeof hash;
|
|
573
556
|
declare const nodeCryptoKit_hashPassword: typeof hashPassword;
|
|
574
|
-
declare const nodeCryptoKit_isNodeSecretKey: typeof isNodeSecretKey;
|
|
575
557
|
declare const nodeCryptoKit_tryConvertBytesToStr: typeof tryConvertBytesToStr;
|
|
576
558
|
declare const nodeCryptoKit_tryConvertEncoding: typeof tryConvertEncoding;
|
|
577
559
|
declare const nodeCryptoKit_tryConvertStrToBytes: typeof tryConvertStrToBytes;
|
|
@@ -585,7 +567,7 @@ declare const nodeCryptoKit_tryHash: typeof tryHash;
|
|
|
585
567
|
declare const nodeCryptoKit_tryHashPassword: typeof tryHashPassword;
|
|
586
568
|
declare const nodeCryptoKit_verifyPassword: typeof verifyPassword;
|
|
587
569
|
declare namespace nodeCryptoKit {
|
|
588
|
-
export { nodeCryptoKit_convertBytesToStr as convertBytesToStr, nodeCryptoKit_convertEncoding as convertEncoding, nodeCryptoKit_convertStrToBytes as convertStrToBytes, nodeCryptoKit_createSecretKey as createSecretKey, nodeCryptoKit_decrypt as decrypt, nodeCryptoKit_decryptObj as decryptObj, nodeCryptoKit_encrypt as encrypt, nodeCryptoKit_encryptObj as encryptObj, nodeCryptoKit_generateUuid as generateUuid, nodeCryptoKit_hash as hash, nodeCryptoKit_hashPassword as hashPassword,
|
|
570
|
+
export { nodeCryptoKit_convertBytesToStr as convertBytesToStr, nodeCryptoKit_convertEncoding as convertEncoding, nodeCryptoKit_convertStrToBytes as convertStrToBytes, nodeCryptoKit_createSecretKey as createSecretKey, nodeCryptoKit_decrypt as decrypt, nodeCryptoKit_decryptObj as decryptObj, nodeCryptoKit_encrypt as encrypt, nodeCryptoKit_encryptObj as encryptObj, nodeCryptoKit_generateUuid as generateUuid, nodeCryptoKit_hash as hash, nodeCryptoKit_hashPassword as hashPassword, nodeCryptoKit_tryConvertBytesToStr as tryConvertBytesToStr, nodeCryptoKit_tryConvertEncoding as tryConvertEncoding, nodeCryptoKit_tryConvertStrToBytes as tryConvertStrToBytes, nodeCryptoKit_tryCreateSecretKey as tryCreateSecretKey, nodeCryptoKit_tryDecrypt as tryDecrypt, nodeCryptoKit_tryDecryptObj as tryDecryptObj, nodeCryptoKit_tryEncrypt as tryEncrypt, nodeCryptoKit_tryEncryptObj as tryEncryptObj, nodeCryptoKit_tryGenerateUuid as tryGenerateUuid, nodeCryptoKit_tryHash as tryHash, nodeCryptoKit_tryHashPassword as tryHashPassword, nodeCryptoKit_verifyPassword as verifyPassword };
|
|
589
571
|
}
|
|
590
572
|
|
|
591
|
-
export { tryCreateSecretKey as a, tryEncrypt as b, createSecretKey as c, tryDecrypt as d, encrypt as e, decrypt as f, generateUuid as g, tryEncryptObj as h,
|
|
573
|
+
export { tryCreateSecretKey as a, tryEncrypt as b, createSecretKey as c, tryDecrypt as d, encrypt as e, decrypt as f, generateUuid as g, tryEncryptObj as h, encryptObj as i, tryDecryptObj as j, decryptObj as k, tryHash as l, hash as m, nodeCryptoKit as n, tryHashPassword as o, hashPassword as p, tryConvertStrToBytes as q, convertStrToBytes as r, tryConvertBytesToStr as s, tryGenerateUuid as t, convertBytesToStr as u, verifyPassword as v, tryConvertEncoding as w, convertEncoding as x };
|
|
@@ -1,22 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { R as Result, e as CreateSecretKeyOptions, W as WebSecretKey, f as EncryptOptions, g as DecryptOptions, H as HashOptions, h as HashPasswordOptions, V as VerifyPasswordOptions, c as Encoding } from './validate-lkJAHCeJ.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Type guard to check if the provided value is a SecretKey object for Web (Deno, Bun, Cloudflare included) environment.
|
|
5
|
-
*
|
|
6
|
-
* ### 🍼 Explain Like I'm Five
|
|
7
|
-
* Checking if the key in your hand is the right kind of key for the lock.
|
|
8
|
-
*
|
|
9
|
-
* @param x - The value to check.
|
|
10
|
-
* @returns True if the value is a SecretKey object for Web, false otherwise.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* isWebSecretKey(webKey); // true
|
|
15
|
-
* isWebSecretKey(nodeKey); // false
|
|
16
|
-
* isWebSecretKey({}); // false
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
declare function isWebSecretKey(x: unknown): x is SecretKey<"web">;
|
|
20
3
|
/**
|
|
21
4
|
* Safely generates a UUID (v4) (non-throwing).
|
|
22
5
|
*
|
|
@@ -76,7 +59,7 @@ declare function generateUuid(): string;
|
|
|
76
59
|
* ```
|
|
77
60
|
*/
|
|
78
61
|
declare function tryCreateSecretKey(secret: string, options?: CreateSecretKeyOptions): Promise<Result<{
|
|
79
|
-
result:
|
|
62
|
+
result: WebSecretKey;
|
|
80
63
|
}>>;
|
|
81
64
|
/**
|
|
82
65
|
* Derives a `SecretKey` from the provided string for encryption/decryption (throwing).
|
|
@@ -100,7 +83,7 @@ declare function tryCreateSecretKey(secret: string, options?: CreateSecretKeyOpt
|
|
|
100
83
|
* const secretKey = await createSecretKey("my-secret"); // SecretKey object
|
|
101
84
|
* ```
|
|
102
85
|
*/
|
|
103
|
-
declare function createSecretKey(secret: string, options?: CreateSecretKeyOptions): Promise<
|
|
86
|
+
declare function createSecretKey(secret: string, options?: CreateSecretKeyOptions): Promise<WebSecretKey>;
|
|
104
87
|
/**
|
|
105
88
|
* Safely encrypts a UTF-8 string using the provided `SecretKey` (non-throwing).
|
|
106
89
|
*
|
|
@@ -124,7 +107,7 @@ declare function createSecretKey(secret: string, options?: CreateSecretKeyOption
|
|
|
124
107
|
* else console.error(error); // { message: "...", description: "..." }
|
|
125
108
|
* ```
|
|
126
109
|
*/
|
|
127
|
-
declare function tryEncrypt(data: string, secretKey:
|
|
110
|
+
declare function tryEncrypt(data: string, secretKey: WebSecretKey, options?: EncryptOptions): Promise<Result<string>>;
|
|
128
111
|
/**
|
|
129
112
|
* Encrypts a UTF-8 string using the provided `SecretKey` (throwing).
|
|
130
113
|
*
|
|
@@ -146,7 +129,7 @@ declare function tryEncrypt(data: string, secretKey: SecretKey<"web">, options?:
|
|
|
146
129
|
* const encrypted = await encrypt("Hello, World!", secretKey); // "iv.cipherWithTag." (Encrypted string)
|
|
147
130
|
* ```
|
|
148
131
|
*/
|
|
149
|
-
declare function encrypt(data: string, secretKey:
|
|
132
|
+
declare function encrypt(data: string, secretKey: WebSecretKey, options?: EncryptOptions): Promise<string>;
|
|
150
133
|
/**
|
|
151
134
|
* Safely decrypts the input string using the provided `SecretKey` (non-throwing).
|
|
152
135
|
*
|
|
@@ -171,7 +154,7 @@ declare function encrypt(data: string, secretKey: SecretKey<"web">, options?: En
|
|
|
171
154
|
* else console.error(error); // { message: "...", description: "..." }
|
|
172
155
|
* ```
|
|
173
156
|
*/
|
|
174
|
-
declare function tryDecrypt(encrypted: string, secretKey:
|
|
157
|
+
declare function tryDecrypt(encrypted: string, secretKey: WebSecretKey, options?: DecryptOptions): Promise<Result<string>>;
|
|
175
158
|
/**
|
|
176
159
|
* Decrypts the input string using the provided `SecretKey` (throwing).
|
|
177
160
|
*
|
|
@@ -194,7 +177,7 @@ declare function tryDecrypt(encrypted: string, secretKey: SecretKey<"web">, opti
|
|
|
194
177
|
* const decrypted = await decrypt(encrypted, secretKey); // "Hello, World!"
|
|
195
178
|
* ```
|
|
196
179
|
*/
|
|
197
|
-
declare function decrypt(encrypted: string, secretKey:
|
|
180
|
+
declare function decrypt(encrypted: string, secretKey: WebSecretKey, options?: DecryptOptions): Promise<string>;
|
|
198
181
|
/**
|
|
199
182
|
* Safely encrypts a plain object using the provided `SecretKey` (non-throwing).
|
|
200
183
|
*
|
|
@@ -222,7 +205,7 @@ declare function decrypt(encrypted: string, secretKey: SecretKey<"web">, options
|
|
|
222
205
|
* else console.error(error); // { message: "...", description: "..." }
|
|
223
206
|
* ```
|
|
224
207
|
*/
|
|
225
|
-
declare function tryEncryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey:
|
|
208
|
+
declare function tryEncryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey: WebSecretKey, options?: EncryptOptions): Promise<Result<string>>;
|
|
226
209
|
/**
|
|
227
210
|
* Encrypts a plain object using the provided `SecretKey` (throwing).
|
|
228
211
|
*
|
|
@@ -248,7 +231,7 @@ declare function tryEncryptObj<T extends object = Record<string, unknown>>(obj:
|
|
|
248
231
|
* const encrypted = await encryptObj({ a: 1 }, secretKey); // "iv.cipherWithTag." (Encrypted string)
|
|
249
232
|
* ```
|
|
250
233
|
*/
|
|
251
|
-
declare function encryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey:
|
|
234
|
+
declare function encryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey: WebSecretKey, options?: EncryptOptions): Promise<string>;
|
|
252
235
|
/**
|
|
253
236
|
* Safely decrypts an encrypted JSON string into a plain object (non-throwing).
|
|
254
237
|
*
|
|
@@ -274,7 +257,7 @@ declare function encryptObj<T extends object = Record<string, unknown>>(obj: T,
|
|
|
274
257
|
* else console.error(error); // { message: "...", description: "..." }
|
|
275
258
|
* ```
|
|
276
259
|
*/
|
|
277
|
-
declare function tryDecryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey:
|
|
260
|
+
declare function tryDecryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey: WebSecretKey, options?: DecryptOptions): Promise<Result<{
|
|
278
261
|
result: T;
|
|
279
262
|
}>>;
|
|
280
263
|
/**
|
|
@@ -300,7 +283,7 @@ declare function tryDecryptObj<T extends object = Record<string, unknown>>(encry
|
|
|
300
283
|
* const obj = await decryptObj<{ a: number }>(encrypted, secretKey); // obj.a === 1
|
|
301
284
|
* ```
|
|
302
285
|
*/
|
|
303
|
-
declare function decryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey:
|
|
286
|
+
declare function decryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey: WebSecretKey, options?: DecryptOptions): Promise<T>;
|
|
304
287
|
/**
|
|
305
288
|
* Safely hashes a UTF-8 string (non-throwing).
|
|
306
289
|
*
|
|
@@ -570,7 +553,6 @@ declare const webCryptoKit_encryptObj: typeof encryptObj;
|
|
|
570
553
|
declare const webCryptoKit_generateUuid: typeof generateUuid;
|
|
571
554
|
declare const webCryptoKit_hash: typeof hash;
|
|
572
555
|
declare const webCryptoKit_hashPassword: typeof hashPassword;
|
|
573
|
-
declare const webCryptoKit_isWebSecretKey: typeof isWebSecretKey;
|
|
574
556
|
declare const webCryptoKit_tryConvertBytesToStr: typeof tryConvertBytesToStr;
|
|
575
557
|
declare const webCryptoKit_tryConvertEncoding: typeof tryConvertEncoding;
|
|
576
558
|
declare const webCryptoKit_tryConvertStrToBytes: typeof tryConvertStrToBytes;
|
|
@@ -584,7 +566,7 @@ declare const webCryptoKit_tryHash: typeof tryHash;
|
|
|
584
566
|
declare const webCryptoKit_tryHashPassword: typeof tryHashPassword;
|
|
585
567
|
declare const webCryptoKit_verifyPassword: typeof verifyPassword;
|
|
586
568
|
declare namespace webCryptoKit {
|
|
587
|
-
export { webCryptoKit_convertBytesToStr as convertBytesToStr, webCryptoKit_convertEncoding as convertEncoding, webCryptoKit_convertStrToBytes as convertStrToBytes, webCryptoKit_createSecretKey as createSecretKey, webCryptoKit_decrypt as decrypt, webCryptoKit_decryptObj as decryptObj, webCryptoKit_encrypt as encrypt, webCryptoKit_encryptObj as encryptObj, webCryptoKit_generateUuid as generateUuid, webCryptoKit_hash as hash, webCryptoKit_hashPassword as hashPassword,
|
|
569
|
+
export { webCryptoKit_convertBytesToStr as convertBytesToStr, webCryptoKit_convertEncoding as convertEncoding, webCryptoKit_convertStrToBytes as convertStrToBytes, webCryptoKit_createSecretKey as createSecretKey, webCryptoKit_decrypt as decrypt, webCryptoKit_decryptObj as decryptObj, webCryptoKit_encrypt as encrypt, webCryptoKit_encryptObj as encryptObj, webCryptoKit_generateUuid as generateUuid, webCryptoKit_hash as hash, webCryptoKit_hashPassword as hashPassword, webCryptoKit_tryConvertBytesToStr as tryConvertBytesToStr, webCryptoKit_tryConvertEncoding as tryConvertEncoding, webCryptoKit_tryConvertStrToBytes as tryConvertStrToBytes, webCryptoKit_tryCreateSecretKey as tryCreateSecretKey, webCryptoKit_tryDecrypt as tryDecrypt, webCryptoKit_tryDecryptObj as tryDecryptObj, webCryptoKit_tryEncrypt as tryEncrypt, webCryptoKit_tryEncryptObj as tryEncryptObj, webCryptoKit_tryGenerateUuid as tryGenerateUuid, webCryptoKit_tryHash as tryHash, webCryptoKit_tryHashPassword as tryHashPassword, webCryptoKit_verifyPassword as verifyPassword };
|
|
588
570
|
}
|
|
589
571
|
|
|
590
|
-
export { tryCreateSecretKey as a, tryEncrypt as b, createSecretKey as c, tryDecrypt as d, encrypt as e, decrypt as f, generateUuid as g, tryEncryptObj as h,
|
|
572
|
+
export { tryCreateSecretKey as a, tryEncrypt as b, createSecretKey as c, tryDecrypt as d, encrypt as e, decrypt as f, generateUuid as g, tryEncryptObj as h, encryptObj as i, tryDecryptObj as j, decryptObj as k, tryHash as l, hash as m, tryHashPassword as n, hashPassword as o, tryConvertStrToBytes as p, convertStrToBytes as q, tryConvertBytesToStr as r, convertBytesToStr as s, tryGenerateUuid as t, tryConvertEncoding as u, verifyPassword as v, webCryptoKit as w, convertEncoding as x };
|
|
@@ -1,22 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { R as Result, e as CreateSecretKeyOptions, W as WebSecretKey, f as EncryptOptions, g as DecryptOptions, H as HashOptions, h as HashPasswordOptions, V as VerifyPasswordOptions, c as Encoding } from './validate-lkJAHCeJ.cjs';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Type guard to check if the provided value is a SecretKey object for Web (Deno, Bun, Cloudflare included) environment.
|
|
5
|
-
*
|
|
6
|
-
* ### 🍼 Explain Like I'm Five
|
|
7
|
-
* Checking if the key in your hand is the right kind of key for the lock.
|
|
8
|
-
*
|
|
9
|
-
* @param x - The value to check.
|
|
10
|
-
* @returns True if the value is a SecretKey object for Web, false otherwise.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* isWebSecretKey(webKey); // true
|
|
15
|
-
* isWebSecretKey(nodeKey); // false
|
|
16
|
-
* isWebSecretKey({}); // false
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
declare function isWebSecretKey(x: unknown): x is SecretKey<"web">;
|
|
20
3
|
/**
|
|
21
4
|
* Safely generates a UUID (v4) (non-throwing).
|
|
22
5
|
*
|
|
@@ -76,7 +59,7 @@ declare function generateUuid(): string;
|
|
|
76
59
|
* ```
|
|
77
60
|
*/
|
|
78
61
|
declare function tryCreateSecretKey(secret: string, options?: CreateSecretKeyOptions): Promise<Result<{
|
|
79
|
-
result:
|
|
62
|
+
result: WebSecretKey;
|
|
80
63
|
}>>;
|
|
81
64
|
/**
|
|
82
65
|
* Derives a `SecretKey` from the provided string for encryption/decryption (throwing).
|
|
@@ -100,7 +83,7 @@ declare function tryCreateSecretKey(secret: string, options?: CreateSecretKeyOpt
|
|
|
100
83
|
* const secretKey = await createSecretKey("my-secret"); // SecretKey object
|
|
101
84
|
* ```
|
|
102
85
|
*/
|
|
103
|
-
declare function createSecretKey(secret: string, options?: CreateSecretKeyOptions): Promise<
|
|
86
|
+
declare function createSecretKey(secret: string, options?: CreateSecretKeyOptions): Promise<WebSecretKey>;
|
|
104
87
|
/**
|
|
105
88
|
* Safely encrypts a UTF-8 string using the provided `SecretKey` (non-throwing).
|
|
106
89
|
*
|
|
@@ -124,7 +107,7 @@ declare function createSecretKey(secret: string, options?: CreateSecretKeyOption
|
|
|
124
107
|
* else console.error(error); // { message: "...", description: "..." }
|
|
125
108
|
* ```
|
|
126
109
|
*/
|
|
127
|
-
declare function tryEncrypt(data: string, secretKey:
|
|
110
|
+
declare function tryEncrypt(data: string, secretKey: WebSecretKey, options?: EncryptOptions): Promise<Result<string>>;
|
|
128
111
|
/**
|
|
129
112
|
* Encrypts a UTF-8 string using the provided `SecretKey` (throwing).
|
|
130
113
|
*
|
|
@@ -146,7 +129,7 @@ declare function tryEncrypt(data: string, secretKey: SecretKey<"web">, options?:
|
|
|
146
129
|
* const encrypted = await encrypt("Hello, World!", secretKey); // "iv.cipherWithTag." (Encrypted string)
|
|
147
130
|
* ```
|
|
148
131
|
*/
|
|
149
|
-
declare function encrypt(data: string, secretKey:
|
|
132
|
+
declare function encrypt(data: string, secretKey: WebSecretKey, options?: EncryptOptions): Promise<string>;
|
|
150
133
|
/**
|
|
151
134
|
* Safely decrypts the input string using the provided `SecretKey` (non-throwing).
|
|
152
135
|
*
|
|
@@ -171,7 +154,7 @@ declare function encrypt(data: string, secretKey: SecretKey<"web">, options?: En
|
|
|
171
154
|
* else console.error(error); // { message: "...", description: "..." }
|
|
172
155
|
* ```
|
|
173
156
|
*/
|
|
174
|
-
declare function tryDecrypt(encrypted: string, secretKey:
|
|
157
|
+
declare function tryDecrypt(encrypted: string, secretKey: WebSecretKey, options?: DecryptOptions): Promise<Result<string>>;
|
|
175
158
|
/**
|
|
176
159
|
* Decrypts the input string using the provided `SecretKey` (throwing).
|
|
177
160
|
*
|
|
@@ -194,7 +177,7 @@ declare function tryDecrypt(encrypted: string, secretKey: SecretKey<"web">, opti
|
|
|
194
177
|
* const decrypted = await decrypt(encrypted, secretKey); // "Hello, World!"
|
|
195
178
|
* ```
|
|
196
179
|
*/
|
|
197
|
-
declare function decrypt(encrypted: string, secretKey:
|
|
180
|
+
declare function decrypt(encrypted: string, secretKey: WebSecretKey, options?: DecryptOptions): Promise<string>;
|
|
198
181
|
/**
|
|
199
182
|
* Safely encrypts a plain object using the provided `SecretKey` (non-throwing).
|
|
200
183
|
*
|
|
@@ -222,7 +205,7 @@ declare function decrypt(encrypted: string, secretKey: SecretKey<"web">, options
|
|
|
222
205
|
* else console.error(error); // { message: "...", description: "..." }
|
|
223
206
|
* ```
|
|
224
207
|
*/
|
|
225
|
-
declare function tryEncryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey:
|
|
208
|
+
declare function tryEncryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey: WebSecretKey, options?: EncryptOptions): Promise<Result<string>>;
|
|
226
209
|
/**
|
|
227
210
|
* Encrypts a plain object using the provided `SecretKey` (throwing).
|
|
228
211
|
*
|
|
@@ -248,7 +231,7 @@ declare function tryEncryptObj<T extends object = Record<string, unknown>>(obj:
|
|
|
248
231
|
* const encrypted = await encryptObj({ a: 1 }, secretKey); // "iv.cipherWithTag." (Encrypted string)
|
|
249
232
|
* ```
|
|
250
233
|
*/
|
|
251
|
-
declare function encryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey:
|
|
234
|
+
declare function encryptObj<T extends object = Record<string, unknown>>(obj: T, secretKey: WebSecretKey, options?: EncryptOptions): Promise<string>;
|
|
252
235
|
/**
|
|
253
236
|
* Safely decrypts an encrypted JSON string into a plain object (non-throwing).
|
|
254
237
|
*
|
|
@@ -274,7 +257,7 @@ declare function encryptObj<T extends object = Record<string, unknown>>(obj: T,
|
|
|
274
257
|
* else console.error(error); // { message: "...", description: "..." }
|
|
275
258
|
* ```
|
|
276
259
|
*/
|
|
277
|
-
declare function tryDecryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey:
|
|
260
|
+
declare function tryDecryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey: WebSecretKey, options?: DecryptOptions): Promise<Result<{
|
|
278
261
|
result: T;
|
|
279
262
|
}>>;
|
|
280
263
|
/**
|
|
@@ -300,7 +283,7 @@ declare function tryDecryptObj<T extends object = Record<string, unknown>>(encry
|
|
|
300
283
|
* const obj = await decryptObj<{ a: number }>(encrypted, secretKey); // obj.a === 1
|
|
301
284
|
* ```
|
|
302
285
|
*/
|
|
303
|
-
declare function decryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey:
|
|
286
|
+
declare function decryptObj<T extends object = Record<string, unknown>>(encrypted: string, secretKey: WebSecretKey, options?: DecryptOptions): Promise<T>;
|
|
304
287
|
/**
|
|
305
288
|
* Safely hashes a UTF-8 string (non-throwing).
|
|
306
289
|
*
|
|
@@ -570,7 +553,6 @@ declare const webCryptoKit_encryptObj: typeof encryptObj;
|
|
|
570
553
|
declare const webCryptoKit_generateUuid: typeof generateUuid;
|
|
571
554
|
declare const webCryptoKit_hash: typeof hash;
|
|
572
555
|
declare const webCryptoKit_hashPassword: typeof hashPassword;
|
|
573
|
-
declare const webCryptoKit_isWebSecretKey: typeof isWebSecretKey;
|
|
574
556
|
declare const webCryptoKit_tryConvertBytesToStr: typeof tryConvertBytesToStr;
|
|
575
557
|
declare const webCryptoKit_tryConvertEncoding: typeof tryConvertEncoding;
|
|
576
558
|
declare const webCryptoKit_tryConvertStrToBytes: typeof tryConvertStrToBytes;
|
|
@@ -584,7 +566,7 @@ declare const webCryptoKit_tryHash: typeof tryHash;
|
|
|
584
566
|
declare const webCryptoKit_tryHashPassword: typeof tryHashPassword;
|
|
585
567
|
declare const webCryptoKit_verifyPassword: typeof verifyPassword;
|
|
586
568
|
declare namespace webCryptoKit {
|
|
587
|
-
export { webCryptoKit_convertBytesToStr as convertBytesToStr, webCryptoKit_convertEncoding as convertEncoding, webCryptoKit_convertStrToBytes as convertStrToBytes, webCryptoKit_createSecretKey as createSecretKey, webCryptoKit_decrypt as decrypt, webCryptoKit_decryptObj as decryptObj, webCryptoKit_encrypt as encrypt, webCryptoKit_encryptObj as encryptObj, webCryptoKit_generateUuid as generateUuid, webCryptoKit_hash as hash, webCryptoKit_hashPassword as hashPassword,
|
|
569
|
+
export { webCryptoKit_convertBytesToStr as convertBytesToStr, webCryptoKit_convertEncoding as convertEncoding, webCryptoKit_convertStrToBytes as convertStrToBytes, webCryptoKit_createSecretKey as createSecretKey, webCryptoKit_decrypt as decrypt, webCryptoKit_decryptObj as decryptObj, webCryptoKit_encrypt as encrypt, webCryptoKit_encryptObj as encryptObj, webCryptoKit_generateUuid as generateUuid, webCryptoKit_hash as hash, webCryptoKit_hashPassword as hashPassword, webCryptoKit_tryConvertBytesToStr as tryConvertBytesToStr, webCryptoKit_tryConvertEncoding as tryConvertEncoding, webCryptoKit_tryConvertStrToBytes as tryConvertStrToBytes, webCryptoKit_tryCreateSecretKey as tryCreateSecretKey, webCryptoKit_tryDecrypt as tryDecrypt, webCryptoKit_tryDecryptObj as tryDecryptObj, webCryptoKit_tryEncrypt as tryEncrypt, webCryptoKit_tryEncryptObj as tryEncryptObj, webCryptoKit_tryGenerateUuid as tryGenerateUuid, webCryptoKit_tryHash as tryHash, webCryptoKit_tryHashPassword as tryHashPassword, webCryptoKit_verifyPassword as verifyPassword };
|
|
588
570
|
}
|
|
589
571
|
|
|
590
|
-
export { tryCreateSecretKey as a, tryEncrypt as b, createSecretKey as c, tryDecrypt as d, encrypt as e, decrypt as f, generateUuid as g, tryEncryptObj as h,
|
|
572
|
+
export { tryCreateSecretKey as a, tryEncrypt as b, createSecretKey as c, tryDecrypt as d, encrypt as e, decrypt as f, generateUuid as g, tryEncryptObj as h, encryptObj as i, tryDecryptObj as j, decryptObj as k, tryHash as l, hash as m, tryHashPassword as n, hashPassword as o, tryConvertStrToBytes as p, convertStrToBytes as q, tryConvertBytesToStr as r, convertBytesToStr as s, tryGenerateUuid as t, tryConvertEncoding as u, verifyPassword as v, webCryptoKit as w, convertEncoding as x };
|