{"version":3,"file":"jwks.mjs","names":["out: any[]","jwk: any"],"sources":["../../../src/http/endpoints/jwks.ts"],"sourcesContent":["import type { Router, Response } from 'express'\nimport type { OpenBadgesHttpModuleConfig } from '../OpenBadgesHttpModuleConfig'\nimport type { ObRequest } from '../router'\n\nimport { getRequestContext, sendJson } from '../router'\nimport { OpenBadgesKeyBindingRepository } from '../../repository/OpenBadgesKeyBindingRepository'\nimport { KeyService } from '../../services/KeyService'\nimport bs58 from 'bs58'\n\nfunction base64UrlEncode(buf: Uint8Array) {\n  return Buffer.from(buf)\n    .toString('base64')\n    .replace(/=/g, '')\n    .replace(/\\+/g, '-')\n    .replace(/\\//g, '_')\n}\n\nexport function configureJwksEndpoint(router: Router, config: OpenBadgesHttpModuleConfig) {\n  router.get(config.jwksPath, async (req: ObRequest, res: Response) => {\n    const { agentContext } = getRequestContext(req)\n    const bindingRepo = agentContext.dependencyManager.resolve(OpenBadgesKeyBindingRepository)\n    let bindings = [] as any[]\n    try {\n      const all = await bindingRepo.getAll(agentContext)\n      bindings = (all as any[]).filter((b) => b.controller === (config.didWebId || ''))\n    } catch (e) {\n      agentContext.config.logger.warn('[OB][HTTP][JWKS] bindingRepo.getAll failed', { err: (e as any)?.message || e })\n      bindings = []\n    }\n    const keyService = agentContext.dependencyManager.resolve(KeyService)\n\n    const jwks = {\n      keys: await (async () => {\n        const out: any[] = []\n        for (const b of bindings) {\n          try {\n            const jwk: any = await keyService.getPublicJwkByVm(agentContext, b.vmId)\n            if (jwk?.kty === 'OKP' && jwk?.crv === 'Ed25519' && jwk?.x) {\n              out.push({ kty: 'OKP', crv: 'Ed25519', x: jwk.x, kid: b.vmId, use: 'sig', alg: 'EdDSA' })\n            }\n          } catch {}\n        }\n        return out\n      })(),\n    }\n\n    sendJson(res, jwks)\n  })\n}\n"],"mappings":";;;;;;aAIuD;AAavD,SAAgB,sBAAsB,QAAgB,QAAoC;AACxF,QAAO,IAAI,OAAO,UAAU,OAAO,KAAgB,QAAkB;EACnE,MAAM,EAAE,iBAAiB,kBAAkB,IAAI;EAC/C,MAAM,cAAc,aAAa,kBAAkB,QAAQ,+BAA+B;EAC1F,IAAI,WAAW,EAAE;AACjB,MAAI;AAEF,eADY,MAAM,YAAY,OAAO,aAAa,EACxB,QAAQ,MAAM,EAAE,gBAAgB,OAAO,YAAY,IAAI;WAC1E,GAAG;AACV,gBAAa,OAAO,OAAO,KAAK,8CAA8C,EAAE,KAAM,GAAW,WAAW,GAAG,CAAC;AAChH,cAAW,EAAE;;EAEf,MAAM,aAAa,aAAa,kBAAkB,QAAQ,WAAW;AAiBrE,WAAS,KAfI,EACX,MAAM,OAAO,YAAY;GACvB,MAAMA,MAAa,EAAE;AACrB,QAAK,MAAM,KAAK,SACd,KAAI;IACF,MAAMC,MAAW,MAAM,WAAW,iBAAiB,cAAc,EAAE,KAAK;AACxE,QAAI,KAAK,QAAQ,SAAS,KAAK,QAAQ,aAAa,KAAK,EACvD,KAAI,KAAK;KAAE,KAAK;KAAO,KAAK;KAAW,GAAG,IAAI;KAAG,KAAK,EAAE;KAAM,KAAK;KAAO,KAAK;KAAS,CAAC;WAErF;AAEV,UAAO;MACL,EACL,CAEkB;GACnB"}