{
  "version": 3,
  "sources": ["../src/client.ts"],
  "sourcesContent": ["import type { StandardSchemaV1 } from '@standard-schema/spec'\nimport type { InferProtocol, RouteOutput, ClientOptions, RouterClient } from './types.js'\nimport type { Capability } from './capability.js'\n\nexport function createClient<\n  T extends InferProtocol<Record<string, RouteOutput<Capability<StandardSchemaV1>, unknown>>>\n> (options:ClientOptions):RouterClient<T> {\n    const { url, capabilities } = options\n\n    // Create a map of capabilities by their `cmd` property\n    const capabilityMap = Object.fromEntries(\n        capabilities.map((cap) => [cap.cmd, cap])\n    )\n    return {\n        request: async (cmd:string, args:any) => {\n            const capability = capabilityMap[cmd]\n\n            if (!capability) {\n                throw new Error(`Capability not found: ${cmd}`)\n            }\n\n            const inv = await capability.invoke({\n                args,\n                iss: options.issuer,\n                sub: options.audience.did,\n                store: options.store,\n                exp: null,\n            })\n\n            const response = await fetch(url, {\n                method: 'POST',\n                body: inv.bytes as BufferSource,\n            })\n            return response.json()\n        },\n    }\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,SAAS,aAEb,SAAuC;AACtC,QAAM,EAAE,KAAK,aAAa,IAAI;AAG9B,QAAM,gBAAgB,OAAO;AAAA,IACzB,aAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC;AAAA,EAC5C;AACA,SAAO;AAAA,IACH,SAAS,8BAAO,KAAY,SAAa;AACrC,YAAM,aAAa,cAAc,GAAG;AAEpC,UAAI,CAAC,YAAY;AACb,cAAM,IAAI,MAAM,yBAAyB,GAAG,EAAE;AAAA,MAClD;AAEA,YAAM,MAAM,MAAM,WAAW,OAAO;AAAA,QAChC;AAAA,QACA,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ,SAAS;AAAA,QACtB,OAAO,QAAQ;AAAA,QACf,KAAK;AAAA,MACT,CAAC;AAED,YAAM,WAAW,MAAM,MAAM,KAAK;AAAA,QAC9B,QAAQ;AAAA,QACR,MAAM,IAAI;AAAA,MACd,CAAC;AACD,aAAO,SAAS,KAAK;AAAA,IACzB,GApBS;AAAA,EAqBb;AACJ;AAhCgB;",
  "names": []
}
