Edit: /tmp/tsx-0/17887-2345534525e055699a5b5f97fd616428bb9e6ffd (7433B)
{"code":"__filename=\"/opt/canhelp/node_modules/better-auth/dist/crypto/jwt.mjs\";(()=>{\nvar __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var jwt_exports={};__export(jwt_exports,{signJWT:()=>signJWT,symmetricDecodeJWT:()=>symmetricDecodeJWT,symmetricEncodeJWT:()=>symmetricEncodeJWT,verifyJWT:()=>verifyJWT});module.exports=__toCommonJS(jwt_exports);var import_hkdf=require(\"@noble/hashes/hkdf.js\");var import_sha2=require(\"@noble/hashes/sha2.js\");var import_jose=require(\"jose\");async function signJWT(payload,secret,expiresIn=3600){return await new import_jose.SignJWT(payload).setProtectedHeader({alg:\"HS256\"}).setIssuedAt().setExpirationTime(Math.floor(Date.now()/1e3)+expiresIn).sign(new TextEncoder().encode(secret))}__name(signJWT,\"signJWT\");async function verifyJWT(token,secret){try{return(await(0,import_jose.jwtVerify)(token,new TextEncoder().encode(secret))).payload}catch{return null}}__name(verifyJWT,\"verifyJWT\");const info=new Uint8Array([66,101,116,116,101,114,65,117,116,104,46,106,115,32,71,101,110,101,114,97,116,101,100,32,69,110,99,114,121,112,116,105,111,110,32,75,101,121]);const now=__name(()=>Date.now()/1e3|0,\"now\");const alg=\"dir\";const enc=\"A256CBC-HS512\";function deriveEncryptionSecret(secret,salt){return(0,import_hkdf.hkdf)(import_sha2.sha256,new TextEncoder().encode(secret),new TextEncoder().encode(salt),info,64)}__name(deriveEncryptionSecret,\"deriveEncryptionSecret\");function getCurrentSecret(secret){if(typeof secret===\"string\")return secret;const value=secret.keys.get(secret.currentVersion);if(!value)throw new Error(`Secret version ${secret.currentVersion} not found in keys`);return value}__name(getCurrentSecret,\"getCurrentSecret\");function getAllSecrets(secret){if(typeof secret===\"string\")return[{version:0,value:secret}];const result=[];for(const[version,value]of secret.keys)result.push({version,value});if(secret.legacySecret&&!result.some(s=>s.value===secret.legacySecret))result.push({version:-1,value:secret.legacySecret});return result}__name(getAllSecrets,\"getAllSecrets\");async function symmetricEncodeJWT(payload,secret,salt,expiresIn=3600){const encryptionSecret=deriveEncryptionSecret(getCurrentSecret(secret),salt);const thumbprint=await(0,import_jose.calculateJwkThumbprint)({kty:\"oct\",k:import_jose.base64url.encode(encryptionSecret)},\"sha256\");return await new import_jose.EncryptJWT(payload).setProtectedHeader({alg,enc,kid:thumbprint}).setIssuedAt().setExpirationTime(now()+expiresIn).setJti(crypto.randomUUID()).encrypt(encryptionSecret)}__name(symmetricEncodeJWT,\"symmetricEncodeJWT\");const jwtDecryptOpts={clockTolerance:15,keyManagementAlgorithms:[alg],contentEncryptionAlgorithms:[enc,\"A256GCM\"]};async function symmetricDecodeJWT(token,secret,salt){if(!token)return null;let hasKid=false;try{hasKid=(0,import_jose.decodeProtectedHeader)(token).kid!==void 0}catch{return null}try{const secrets=getAllSecrets(secret);const{payload}=await(0,import_jose.jwtDecrypt)(token,async protectedHeader=>{const kid=protectedHeader.kid;if(kid!==void 0){for(const s of secrets){const encryptionSecret=deriveEncryptionSecret(s.value,salt);if(kid===await(0,import_jose.calculateJwkThumbprint)({kty:\"oct\",k:import_jose.base64url.encode(encryptionSecret)},\"sha256\"))return encryptionSecret}throw new Error(\"no matching decryption secret\")}if(secrets.length===1)return deriveEncryptionSecret(secrets[0].value,salt);return deriveEncryptionSecret(secrets[0].value,salt)},jwtDecryptOpts);return payload}catch{if(hasKid)return null;const secrets=getAllSecrets(secret);if(secrets.length<=1)return null;for(let i=1;i