{"version":3,"file":"utils.mjs","names":[],"sources":["../../src/oauth2/utils.ts"],"sourcesContent":["import type { AuthContext } from \"@better-auth/core\";\nimport { symmetricDecrypt, symmetricEncrypt } from \"../crypto\";\n\n/**\n * Check if a string looks like encrypted data\n */\nfunction isLikelyEncrypted(token: string): boolean {\n\tif (token.startsWith(\"$ba$\")) return true;\n\treturn token.length % 2 === 0 && /^[0-9a-f]+$/i.test(token);\n}\n\nexport function decryptOAuthToken(token: string, ctx: AuthContext) {\n\tif (!token) return token;\n\tif (ctx.options.account?.encryptOAuthTokens) {\n\t\tif (!isLikelyEncrypted(token)) {\n\t\t\treturn token;\n\t\t}\n\t\treturn symmetricDecrypt({\n\t\t\tkey: ctx.secretConfig,\n\t\t\tdata: token,\n\t\t});\n\t}\n\treturn token;\n}\n\nexport function setTokenUtil(\n\ttoken: string | null | undefined,\n\tctx: AuthContext,\n) {\n\tif (ctx.options.account?.encryptOAuthTokens && token) {\n\t\treturn symmetricEncrypt({\n\t\t\tkey: ctx.secretConfig,\n\t\t\tdata: token,\n\t\t});\n\t}\n\treturn token;\n}\n"],"mappings":";;;;;;AAMA,SAAS,kBAAkB,OAAwB;AAClD,KAAI,MAAM,WAAW,OAAO,CAAE,QAAO;AACrC,QAAO,MAAM,SAAS,MAAM,KAAK,eAAe,KAAK,MAAM;;AAG5D,SAAgB,kBAAkB,OAAe,KAAkB;AAClE,KAAI,CAAC,MAAO,QAAO;AACnB,KAAI,IAAI,QAAQ,SAAS,oBAAoB;AAC5C,MAAI,CAAC,kBAAkB,MAAM,CAC5B,QAAO;AAER,SAAO,iBAAiB;GACvB,KAAK,IAAI;GACT,MAAM;GACN,CAAC;;AAEH,QAAO;;AAGR,SAAgB,aACf,OACA,KACC;AACD,KAAI,IAAI,QAAQ,SAAS,sBAAsB,MAC9C,QAAO,iBAAiB;EACvB,KAAK,IAAI;EACT,MAAM;EACN,CAAC;AAEH,QAAO"}