{"version":3,"sources":["../src/profile.ts"],"sourcesContent":["import {\n    AgenticProfile,\n    JWKSet,\n    prettyJson\n} from \"@agentic-profile/common\";\n\nimport { join } from \"path\";\nimport {\n    access,\n    mkdir,\n    readFile,\n    writeFile\n} from \"fs/promises\";\n\n\ntype SaveProfileParams = {\n    dir: string,\n    profile?: AgenticProfile,\n    keyring?: JWKSet[]\n}\n\nexport async function saveProfile({ dir, profile, keyring }: SaveProfileParams) {\n    await mkdir(dir, { recursive: true });\n\n    const profilePath = join(dir, \"did.json\");\n    if( profile ) {\n        await writeFile(\n            profilePath,\n            prettyJson( profile ),\n            \"utf8\"\n        );\n    }\n\n    const keyringPath = join(dir, \"keyring.json\");\n    if( keyring ) {\n        await writeFile(\n            keyringPath,\n            prettyJson( keyring ),\n            \"utf8\"\n        );\n    }  \n\n    return { profilePath, keyringPath }\n}\n\nexport async function loadProfileAndKeyring( dir: string ) {\n    const profile = await loadProfile( dir );\n    const keyring = await loadKeyring( dir );\n    return { profile, keyring };\n}\n\nexport async function loadProfile( dir: string ) {\n    return loadJson<AgenticProfile>( dir, \"did.json\" );\n}\n\nexport async function loadKeyring( dir: string ) {\n    return loadJson<JWKSet[]>( dir, \"keyring.json\" );\n}\n\nexport async function loadJson<T>( dir: string, filename: string ): Promise<T> {\n    const path = join( dir, filename );\n    if( await fileExists( path ) !== true )\n        throw new Error(`Failed to load ${path} - file not found`);\n\n    const buffer = await readFile( path, \"utf-8\" );\n    return JSON.parse( buffer ) as T;\n}\n\n\n//\n// General util\n//\n\nasync function fileExists(path: string): Promise<boolean> {\n    try {\n        await access(path);\n        return true;\n    } catch (error) {\n        return false;\n    }\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAIO;AAEP,kBAAqB;AACrB,sBAKO;AASP,eAAsB,YAAY,EAAE,KAAK,SAAS,QAAQ,GAAsB;AAC5E,YAAM,uBAAM,KAAK,EAAE,WAAW,KAAK,CAAC;AAEpC,QAAM,kBAAc,kBAAK,KAAK,UAAU;AACxC,MAAI,SAAU;AACV,cAAM;AAAA,MACF;AAAA,UACA,0BAAY,OAAQ;AAAA,MACpB;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,kBAAc,kBAAK,KAAK,cAAc;AAC5C,MAAI,SAAU;AACV,cAAM;AAAA,MACF;AAAA,UACA,0BAAY,OAAQ;AAAA,MACpB;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO,EAAE,aAAa,YAAY;AACtC;AAEA,eAAsB,sBAAuB,KAAc;AACvD,QAAM,UAAU,MAAM,YAAa,GAAI;AACvC,QAAM,UAAU,MAAM,YAAa,GAAI;AACvC,SAAO,EAAE,SAAS,QAAQ;AAC9B;AAEA,eAAsB,YAAa,KAAc;AAC7C,SAAO,SAA0B,KAAK,UAAW;AACrD;AAEA,eAAsB,YAAa,KAAc;AAC7C,SAAO,SAAoB,KAAK,cAAe;AACnD;AAEA,eAAsB,SAAa,KAAa,UAA+B;AAC3E,QAAM,WAAO,kBAAM,KAAK,QAAS;AACjC,MAAI,MAAM,WAAY,IAAK,MAAM;AAC7B,UAAM,IAAI,MAAM,kBAAkB,IAAI,mBAAmB;AAE7D,QAAM,SAAS,UAAM,0BAAU,MAAM,OAAQ;AAC7C,SAAO,KAAK,MAAO,MAAO;AAC9B;AAOA,eAAe,WAAW,MAAgC;AACtD,MAAI;AACA,cAAM,wBAAO,IAAI;AACjB,WAAO;AAAA,EACX,SAAS,OAAO;AACZ,WAAO;AAAA,EACX;AACJ;","names":[]}