Edit: /tmp/tsx-0/17887-1f18e0f2abc568e1b269707d1517c2e0302829c4 (11196B)
{"code":"__filename=\"/opt/canhelp/node_modules/better-auth/dist/plugins/jwt/index.mjs\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;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 __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var jwt_exports={};__export(jwt_exports,{createJwk:()=>import_utils.createJwk,generateExportedKeyPair:()=>import_utils.generateExportedKeyPair,getJwtToken:()=>import_sign.getJwtToken,jwt:()=>jwt,signJWT:()=>import_sign.signJWT,toExpJWT:()=>import_utils.toExpJWT,verifyJWT:()=>import_verify.verifyJWT});module.exports=__toCommonJS(jwt_exports);var import_schema=require(\"../../db/schema.mjs\");var import_session=require(\"../../api/routes/session.mjs\");var import_api=require(\"../../api/index.mjs\");var import_adapter=require(\"./adapter.mjs\");var import_schema2=require(\"./schema.mjs\");var import_utils=require(\"./utils.mjs\");var import_sign=require(\"./sign.mjs\");var import_verify=require(\"./verify.mjs\");var import_error=require(\"@better-auth/core/error\");var import_api2=require(\"@better-auth/core/api\");var z=__toESM(require(\"zod\"));const signJWTBodySchema=z.object({payload:z.record(z.string(),z.any()),overrideOptions:z.record(z.string(),z.any()).optional()});const verifyJWTBodySchema=z.object({token:z.string(),issuer:z.string().optional()});const jwt=__name(options=>{if(options?.jwt?.sign&&!options.jwks?.remoteUrl)throw new import_error.BetterAuthError(\"options.jwks.remoteUrl must be set when using options.jwt.sign\");if(options?.jwks?.remoteUrl&&!options.jwks?.keyPairConfig?.alg)throw new import_error.BetterAuthError(\"options.jwks.keyPairConfig.alg must be specified when using the oidc plugin with options.jwks.remoteUrl\");const jwksPath=options?.jwks?.jwksPath??\"/jwks\";if(typeof jwksPath!==\"string\"||jwksPath.length===0||!jwksPath.startsWith(\"/\")||jwksPath.includes(\"..\"))throw new import_error.BetterAuthError(\"options.jwks.jwksPath must be a non-empty string starting with '/' and not contain '..'\");return{id:\"jwt\",options,endpoints:{getJwks:(0,import_api2.createAuthEndpoint)(jwksPath,{method:\"GET\",metadata:{openapi:{operationId:\"getJSONWebKeySet\",description:\"Get the JSON Web Key Set\",responses:{\"200\":{description:\"JSON Web Key Set retrieved successfully\",content:{\"application/json\":{schema:{type:\"object\",properties:{keys:{type:\"array\",description:\"Array of public JSON Web Keys\",items:{type:\"object\",properties:{kid:{type:\"string\",description:\"Key ID uniquely identifying the key, corresponds to the 'id' from the stored Jwk\"},kty:{type:\"string\",description:\"Key type (e.g., 'RSA', 'EC', 'OKP')\"},alg:{type:\"string\",description:\"Algorithm intended for use with the key (e.g., 'EdDSA', 'RS256')\"},use:{type:\"string\",description:\"Intended use of the public key (e.g., 'sig' for signature)\",enum:[\"sig\"],nullable:true},n:{type:\"string\",description:\"Modulus for RSA keys (base64url-encoded)\",nullable:true},e:{type:\"string\",description:\"Exponent for RSA keys (base64url-encoded)\",nullable:true},crv:{type:\"string\",description:\"Curve name for elliptic curve keys (e.g., 'Ed25519', 'P-256')\",nullable:true},x:{type:\"string\",description:\"X coordinate for elliptic curve keys (base64url-encoded)\",nullable:true},y:{type:\"string\",description:\"Y coordinate for elliptic curve keys (base64url-encoded)\",nullable:true}},required:[\"kid\",\"kty\",\"alg\"]}}},required:[\"keys\"]}}}}}}}},async ctx=>{if(options?.jwks?.remoteUrl)throw new import_api.APIError(\"NOT_FOUND\");const adapter=(0,import_adapter.getJwksAdapter)(ctx.context.adapter,options);let keySets=await adapter.getAllKeys(ctx);if(!keySets||keySets?.length===0){await(0,import_utils.createJwk)(ctx,options);keySets=await adapter.getAllKeys(ctx)}if(!keySets?.length)throw new import_error.BetterAuthError(\"No key sets found. Make sure you have a key in your database.\");const now=Date.now();const gracePeriod=(options?.jwks?.gracePeriod??3600*24*30)*1e3;const keys=keySets.filter(key=>{if(!key.expiresAt)return true;return key.expiresAt.getTime()+gracePeriod>now});const keyPairConfig=options?.jwks?.keyPairConfig;const defaultCrv=keyPairConfig?\"crv\"in keyPairConfig?keyPairConfig.crv:void 0:void 0;return ctx.json({keys:keys.map(keySet=>{return{alg:keySet.alg??options?.jwks?.keyPairConfig?.alg??\"EdDSA\",crv:keySet.crv??defaultCrv,...JSON.parse(keySet.publicKey),kid:keySet.id}})})}),getToken:(0,import_api2.createAuthEndpoint)(\"/token\",{method:\"GET\",requireHeaders:true,use:[import_session.sessionMiddleware],metadata:{openapi:{operationId:\"getJSONWebToken\",description:\"Get a JWT token\",responses:{200:{description:\"Success\",content:{\"application/json\":{schema:{type:\"object\",properties:{token:{type:\"string\"}}}}}}}}}},async ctx=>{const jwt2=await(0,import_sign.getJwtToken)(ctx,options);return ctx.json({token:jwt2})}),signJWT:(0,import_api2.createAuthEndpoint)({method:\"POST\",metadata:{$Infer:{body:{}}},body:signJWTBodySchema},async c=>{const jwt2=await(0,import_sign.signJWT)(c,{options:{...options,...c.body.overrideOptions},payload:c.body.payload});return c.json({token:jwt2})}),verifyJWT:(0,import_api2.createAuthEndpoint)({method:\"POST\",metadata:{$Infer:{body:{},response:{}}},body:verifyJWTBodySchema},async ctx=>{const overrideOptions=ctx.body.issuer?{...options,jwt:{...options?.jwt,issuer:ctx.body.issuer}}:options;const payload=await(0,import_verify.verifyJWT)(ctx.body.token,overrideOptions);return ctx.json({payload})})},hooks:{after:[{matcher(context){return context.path===\"/get-session\"},handler:(0,import_api2.createAuthMiddleware)(async ctx=>{if(options?.disableSettingJwtHeader)return;const session=ctx.context.session||ctx.context.newSession;if(session&&session.session){const jwt2=await(0,import_sign.getJwtToken)(ctx,options);const exposedHeaders=ctx.context.responseHeaders?.get(\"access-control-expose-headers\")||\"\";const headersSet=new Set(exposedHeaders.split(\",\").map(header=>header.trim()).filter(Boolean));headersSet.add(\"set-auth-jwt\");ctx.setHeader(\"set-auth-jwt\",jwt2);ctx.setHeader(\"Access-Control-Expose-Headers\",Array.from(headersSet).join(\", \"))}})}]},schema:(0,import_schema.mergeSchema)(import_schema2.schema,options?.schema)}},\"jwt\");0&&(module.exports={createJwk,generateExportedKeyPair,getJwtToken,jwt,signJWT,toExpJWT,verifyJWT});\n})()\n","warnings":[],"map":{"version":3,"mappings":";i/BAAA,yWAA4B,+BAC5B,mBAAkC,wCAClC,eAAuC,+BACvC,mBAA+B,yBAC/B,IAAAA,eAAuB,wBACvB,iBAA6D,uBAC7D,gBAAqC,sBACrC,kBAA0B,wBAC1B,iBAAgC,mCAChC,IAAAC,YAAyD,iCACzD,MAAmB,wBAGnB,MAAM,kBAAoB,EAAE,OAAO,CAClC,QAAS,EAAE,OAAO,EAAE,OAAO,EAAG,EAAE,IAAI,CAAC,EACrC,gBAAiB,EAAE,OAAO,EAAE,OAAO,EAAG,EAAE,IAAI,CAAC,EAAE,SAAS,CACzD,CAAC,EACD,MAAM,oBAAsB,EAAE,OAAO,CACpC,MAAO,EAAE,OAAO,EAChB,OAAQ,EAAE,OAAO,EAAE,SAAS,CAC7B,CAAC,EACD,MAAM,IAAM,OAAC,SAAY,CACxB,GAAI,SAAS,KAAK,MAAQ,CAAC,QAAQ,MAAM,UAAW,MAAM,IAAI,6BAAgB,gEAAgE,EAC9I,GAAI,SAAS,MAAM,WAAa,CAAC,QAAQ,MAAM,eAAe,IAAK,MAAM,IAAI,6BAAgB,yGAAyG,EACtM,MAAM,SAAW,SAAS,MAAM,UAAY,QAC5C,GAAI,OAAO,WAAa,UAAY,SAAS,SAAW,GAAK,CAAC,SAAS,WAAW,GAAG,GAAK,SAAS,SAAS,IAAI,EAAG,MAAM,IAAI,6BAAgB,yFAAyF,EACtO,MAAO,CACN,GAAI,MACJ,QACA,UAAW,CACV,WAAS,gCAAmB,SAAU,CACrC,OAAQ,MACR,SAAU,CAAE,QAAS,CACpB,YAAa,mBACb,YAAa,2BACb,UAAW,CAAE,MAAO,CACnB,YAAa,0CACb,QAAS,CAAE,mBAAoB,CAAE,OAAQ,CACxC,KAAM,SACN,WAAY,CAAE,KAAM,CACnB,KAAM,QACN,YAAa,gCACb,MAAO,CACN,KAAM,SACN,WAAY,CACX,IAAK,CACJ,KAAM,SACN,YAAa,kFACd,EACA,IAAK,CACJ,KAAM,SACN,YAAa,qCACd,EACA,IAAK,CACJ,KAAM,SACN,YAAa,kEACd,EACA,IAAK,CACJ,KAAM,SACN,YAAa,6DACb,KAAM,CAAC,KAAK,EACZ,SAAU,IACX,EACA,EAAG,CACF,KAAM,SACN,YAAa,2CACb,SAAU,IACX,EACA,EAAG,CACF,KAAM,SACN,YAAa,4CACb,SAAU,IACX,EACA,IAAK,CACJ,KAAM,SACN,YAAa,gEACb,SAAU,IACX,EACA,EAAG,CACF,KAAM,SACN,YAAa,2DACb,SAAU,IACX,EACA,EAAG,CACF,KAAM,SACN,YAAa,2DACb,SAAU,IACX,CACD,EACA,SAAU,CACT,MACA,MACA,KACD,CACD,CACD,CAAE,EACF,SAAU,CAAC,MAAM,CAClB,CAAE,CAAE,CACL,CAAE,CACH,CAAE,CACH,EAAG,MAAO,KAAQ,CACjB,GAAI,SAAS,MAAM,UAAW,MAAM,IAAI,WAAAC,SAAW,WAAW,EAC9D,MAAM,WAAU,+BAAe,IAAI,QAAQ,QAAS,OAAO,EAC3D,IAAI,QAAU,MAAM,QAAQ,WAAW,GAAG,EAC1C,GAAI,CAAC,SAAW,SAAS,SAAW,EAAG,CACtC,QAAM,wBAAU,IAAK,OAAO,EAC5B,QAAU,MAAM,QAAQ,WAAW,GAAG,CACvC,CACA,GAAI,CAAC,SAAS,OAAQ,MAAM,IAAI,6BAAgB,+DAA+D,EAC/G,MAAM,IAAM,KAAK,IAAI,EACrB,MAAM,aAAe,SAAS,MAAM,aAAe,KAAO,GAAK,IAAM,IACrE,MAAM,KAAO,QAAQ,OAAQ,KAAQ,CACpC,GAAI,CAAC,IAAI,UAAW,MAAO,MAC3B,OAAO,IAAI,UAAU,QAAQ,EAAI,YAAc,GAChD,CAAC,EACD,MAAM,cAAgB,SAAS,MAAM,cACrC,MAAM,WAAa,cAAgB,QAAS,cAAgB,cAAc,IAAM,OAAS,OACzF,OAAO,IAAI,KAAK,CAAE,KAAM,KAAK,IAAK,QAAW,CAC5C,MAAO,CACN,IAAK,OAAO,KAAO,SAAS,MAAM,eAAe,KAAO,QACxD,IAAK,OAAO,KAAO,WACnB,GAAG,KAAK,MAAM,OAAO,SAAS,EAC9B,IAAK,OAAO,EACb,CACD,CAAC,CAAE,CAAC,CACL,CAAC,EACD,YAAU,gCAAmB,SAAU,CACtC,OAAQ,MACR,eAAgB,KAChB,IAAK,CAAC,gCAAiB,EACvB,SAAU,CAAE,QAAS,CACpB,YAAa,kBACb,YAAa,kBACb,UAAW,CAAE,IAAK,CACjB,YAAa,UACb,QAAS,CAAE,mBAAoB,CAAE,OAAQ,CACxC,KAAM,SACN,WAAY,CAAE,MAAO,CAAE,KAAM,QAAS,CAAE,CACzC,CAAE,CAAE,CACL,CAAE,CACH,CAAE,CACH,EAAG,MAAO,KAAQ,CACjB,MAAMC,KAAM,QAAM,yBAAY,IAAK,OAAO,EAC1C,OAAO,IAAI,KAAK,CAAE,MAAOA,IAAI,CAAC,CAC/B,CAAC,EACD,WAAS,gCAAmB,CAC3B,OAAQ,OACR,SAAU,CAAE,OAAQ,CAAE,KAAM,CAAC,CAAE,CAAE,EACjC,KAAM,iBACP,EAAG,MAAO,GAAM,CACf,MAAMA,KAAM,QAAM,qBAAQ,EAAG,CAC5B,QAAS,CACR,GAAG,QACH,GAAG,EAAE,KAAK,eACX,EACA,QAAS,EAAE,KAAK,OACjB,CAAC,EACD,OAAO,EAAE,KAAK,CAAE,MAAOA,IAAI,CAAC,CAC7B,CAAC,EACD,aAAW,gCAAmB,CAC7B,OAAQ,OACR,SAAU,CAAE,OAAQ,CACnB,KAAM,CAAC,EACP,SAAU,CAAC,CACZ,CAAE,EACF,KAAM,mBACP,EAAG,MAAO,KAAQ,CACjB,MAAM,gBAAkB,IAAI,KAAK,OAAS,CACzC,GAAG,QACH,IAAK,CACJ,GAAG,SAAS,IACZ,OAAQ,IAAI,KAAK,MAClB,CACD,EAAI,QACJ,MAAM,QAAU,QAAM,yBAAU,IAAI,KAAK,MAAO,eAAe,EAC/D,OAAO,IAAI,KAAK,CAAE,OAAQ,CAAC,CAC5B,CAAC,CACF,EACA,MAAO,CAAE,MAAO,CAAC,CAChB,QAAQ,QAAS,CAChB,OAAO,QAAQ,OAAS,cACzB,EACA,WAAS,kCAAqB,MAAO,KAAQ,CAC5C,GAAI,SAAS,wBAAyB,OACtC,MAAM,QAAU,IAAI,QAAQ,SAAW,IAAI,QAAQ,WACnD,GAAI,SAAW,QAAQ,QAAS,CAC/B,MAAMA,KAAM,QAAM,yBAAY,IAAK,OAAO,EAC1C,MAAM,eAAiB,IAAI,QAAQ,iBAAiB,IAAI,+BAA+B,GAAK,GAC5F,MAAM,WAAa,IAAI,IAAI,eAAe,MAAM,GAAG,EAAE,IAAK,QAAW,OAAO,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,EACnG,WAAW,IAAI,cAAc,EAC7B,IAAI,UAAU,eAAgBA,IAAG,EACjC,IAAI,UAAU,gCAAiC,MAAM,KAAK,UAAU,EAAE,KAAK,IAAI,CAAC,CACjF,CACD,CAAC,CACF,CAAC,CAAE,EACH,UAAQ,2BAAY,sBAAQ,SAAS,MAAM,CAC5C,CACD,EAhLY","names":["import_schema","import_api","APIError$1","jwt"],"ignoreList":[],"sources":["/opt/canhelp/node_modules/better-auth/dist/plugins/jwt/index.mjs"],"sourcesContent":[null]}}