/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/@wovin/connect-ucan-store-proxy@0.3.6/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{b as y,c as h}from"./chunk-NCKVOZOE.js";import{a as P}from"./chunk-HM3E4MX7.js";import{a as q,b as K,c as f,d as S,e as E,f as I}from"./chunk-AWUNFYKT.js";import{a as T,b}from"./chunk-H6V5UVNG.js";import{a as B,b as N,c,d as x,e as d}from"./chunk-LVL6NSZQ.js";import"./chunk-55J6XMHW.js";import"./chunk-BZH3VTEP.js";import{resolveIPNSSequence as C}from"@wovin/core/ipns";import{Logger as D}from"besonders-logger";import{EdDSASigner as w}from"iso-signatures/signers/eddsa.js";var{WARN:G,LOG:U,DEBUG:m,VERBOSE:L,ERROR:g}=D.setup(D.INFO),v=class u{constructor(e,r,t,o=[],s=e,i=e){this.baseUrl=e;this.issuerKey=r;this.tmpKey=t;this.delegations=o;this.gatewayBaseUrl=s;this.nameBaseUrl=i}baseUrl;issuerKey;tmpKey;delegations;gatewayBaseUrl;nameBaseUrl;static async init({url:e,issuerKey:r,delegations:t,...o}){let s=d(e),i=await w.generate();U("Init UcanStoreProxyConnector:",{url:e,serviceDID:s,issuerDID:r.did,tmpKeyDID:i.did});let a=t??[];if(!t){let n=["/storage/read","/storage/store","/storage/pin","/ipns/publish"];for(let p of n){let l=await c({issuer:r.did,audience:i.did,subject:s,command:p,expiration:1/0,signer:r});a.push(l),m("Created parent delegation",{cmd:p,cid:l.cid.toString()})}}return Object.assign(new u(e,r,i,a),o)}get isSetup(){return!0}get isValid(){return!0}async storeCar(e,r){let t=d(this.baseUrl),o=this.delegations.find(i=>i.payload.cmd==="/storage/store");if(!o)throw g("No parent delegation found for /storage/store");m("[storeCar] Creating request delegation:",{issuer:this.tmpKey.did,audience:t,subject:t,parentIss:o.payload.iss,parentAud:o.payload.aud,parentSub:o.payload.sub});let s=await c({issuer:this.tmpKey.did,audience:t,subject:t,command:"/storage/store",expiration:1/0,proofs:[o],signer:this.tmpKey});return b(this.baseUrl,e,s,r)}async pushDag(e,r,t={}){let{signal:o,onProgress:s,prevBoundary:i}=t,a=d(this.baseUrl),n=this.delegations.find(l=>l.payload.cmd==="/storage/store");if(!n)throw g("No parent delegation found for /storage/store");let p=await c({issuer:this.tmpKey.did,audience:a,subject:a,command:"/storage/store",expiration:1/0,proofs:[n],signer:this.tmpKey});return y(this.baseUrl,e,r,{delegation:p,signal:o,onProgress:s,prevBoundary:i})}async pullDag(e,r,t={}){let{signal:o,onProgress:s,prevBoundary:i}=t,a=d(this.baseUrl),n=this.delegations.find(l=>l.payload.cmd==="/storage/read");if(!n)throw g("No parent delegation found for /storage/read");let p=await c({issuer:this.tmpKey.did,audience:a,subject:a,command:"/storage/read",expiration:1/0,proofs:[n],signer:this.tmpKey});return h(this.baseUrl,e,r,{delegation:p,signal:o,onProgress:s,prevBoundary:i})}async retrieveCar(e){if(!this.gatewayBaseUrl)throw new Error("gatewayBaseUrl required for retrieveCar");return I(this.gatewayBaseUrl,e)}async retrieveThread(...e){if(!this.gatewayBaseUrl)throw new Error("gatewayBaseUrl required for retrieveThread");return f(this,...e)}async resolveIPNS(...e){if(!this.nameBaseUrl)throw new Error(`nameBaseUrl required for resolveIPNS (connector baseUrl=${this.baseUrl})`);return S(this,...e)}async publishIPNS(e,r){let t=this.baseUrl,o=d(t),s=this.delegations.find(a=>a.payload.cmd==="/ipns/publish");if(!s)throw g("No parent delegation found for /ipns/publish");m("[publishIPNS] Creating request delegation:",{issuer:this.tmpKey.did,audience:o,subject:o,parentIss:s.payload.iss,parentAud:s.payload.aud,parentSub:s.payload.sub});let i=await c({issuer:this.tmpKey.did,audience:o,subject:o,command:"/ipns/publish",expiration:1/0,proofs:[s],signer:this.tmpKey});return P(t,e,r,i)}asIPNSTarget(){return{name:`ucan-proxy:${this.baseUrl}`,publish:async(e,r)=>{let t=btoa(String.fromCharCode(...r));await this.publishIPNS(e,t)},resolveSequence:async e=>{try{return await C(this.baseUrl,e)}catch(r){return console.warn(`[asIPNSTarget] resolveSequence failed for ${e}:`,r),null}}}}};async function V(u,e,r){let{publishIPNSRecord:t}=await import("@wovin/core/ipns"),o=[r.asIPNSTarget()];return t(e,u,o)}export{T as DagIncompleteError,q as IPNSNeverPublishedError,K as IPNSResolutionError,v as UcanStoreProxyConnector,c as createStoreDelegation,x as delegationToBase64,d as getServiceDID,B as normalizeCommand,P as publishIPNS,V as publishSnapshotToIpns,S as resolveIPNS,E as resolveIPNSViaW3Name,I as retrieveCar,f as retrieveThread,N as serializeDelegation,b as storeCar};
//# sourceMappingURL=index.js.map