simple-hpke 0.3.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -14
- package/dist/constants.cjs +87 -28
- package/dist/constants.cjs.map +2 -2
- package/dist/constants.js +87 -28
- package/dist/constants.js.map +2 -2
- package/dist/constants.min.cjs +1 -1
- package/dist/constants.min.cjs.map +3 -3
- package/dist/constants.min.js +1 -1
- package/dist/constants.min.js.map +3 -3
- package/dist/index.cjs +99 -29
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +99 -29
- package/dist/index.js.map +2 -2
- package/dist/index.min.cjs +1 -1
- package/dist/index.min.cjs.map +3 -3
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +3 -3
- package/dist/meta.json +18 -16
- package/dist/util.cjs +99 -29
- package/dist/util.cjs.map +2 -2
- package/dist/util.d.ts +24 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +99 -29
- package/dist/util.js.map +2 -2
- package/dist/util.min.cjs +1 -1
- package/dist/util.min.cjs.map +3 -3
- package/dist/util.min.js +1 -1
- package/dist/util.min.js.map +3 -3
- package/package.json +5 -4
package/dist/index.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Oe=Object.defineProperty;var i=(e,t)=>Oe(e,"name",{value:t,configurable:!0});var w=(e,t)=>{for(var r in t)Oe(e,r,{get:t[r],enumerable:!0})};function Z(e=0){return new Uint8Array(e)}i(Z,"allocUnsafe");var ue={};w(ue,{base10:()=>Lt});var un=new Uint8Array(0);function Ve(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}i(Ve,"equals");function I(e){if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")}i(I,"coerce");function ze(e){return new TextEncoder().encode(e)}i(ze,"fromString");function He(e){return new TextDecoder().decode(e)}i(He,"toString");function It(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<e.length;o++){var a=e.charAt(o),s=a.charCodeAt(0);if(r[s]!==255)throw new TypeError(a+" is ambiguous");r[s]=o}var c=e.length,y=e.charAt(0),m=Math.log(c)/Math.log(256),E=Math.log(256)/Math.log(c);function K(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var h=0,L=0,x=0,A=p.length;x!==A&&p[x]===0;)x++,h++;for(var U=(A-x)*E+1>>>0,b=new Uint8Array(U);x!==A;){for(var S=p[x],D=0,g=U-1;(S!==0||D<L)&&g!==-1;g--,D++)S+=256*b[g]>>>0,b[g]=S%c>>>0,S=S/c>>>0;if(S!==0)throw new Error("Non-zero carry");L=D,x++}for(var C=U-L;C!==U&&b[C]===0;)C++;for(var W=y.repeat(h);C<U;++C)W+=e.charAt(b[C]);return W}i(K,"encode");function R(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var h=0;if(p[h]!==" "){for(var L=0,x=0;p[h]===y;)L++,h++;for(var A=(p.length-h)*m+1>>>0,U=new Uint8Array(A);p[h];){var b=r[p.charCodeAt(h)];if(b===255)return;for(var S=0,D=A-1;(b!==0||S<x)&&D!==-1;D--,S++)b+=c*U[D]>>>0,U[D]=b%256>>>0,b=b/256>>>0;if(b!==0)throw new Error("Non-zero carry");x=S,h++}if(p[h]!==" "){for(var g=A-x;g!==A&&U[g]===0;)g++;for(var C=new Uint8Array(L+(A-g)),W=L;g!==A;)C[W++]=U[g++];return C}}}i(R,"decodeUnsafe");function Q(p){var h=R(p);if(h)return h;throw new Error(`Non-${t} character`)}return i(Q,"decode"),{encode:K,decodeUnsafe:R,decode:Q}}i(It,"base");var Kt=It,Rt=Kt,Ge=Rt;var se=class{static{i(this,"Encoder")}name;prefix;baseEncode;constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},ce=class{static{i(this,"Decoder")}name;prefix;baseDecode;prefixCodePoint;constructor(t,r,n){this.name=t,this.prefix=r;let o=r.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return $e(this,t)}},pe=class{static{i(this,"ComposedDecoder")}decoders;constructor(t){this.decoders=t}or(t){return $e(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function $e(e,t){return new pe({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}i($e,"or");var fe=class{static{i(this,"Codec")}name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,r,n,o){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new se(t,r,n),this.decoder=new ce(t,r,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function k({name:e,prefix:t,encode:r,decode:n}){return new fe(e,t,r,n)}i(k,"from");function _({name:e,prefix:t,alphabet:r}){let{encode:n,decode:o}=Ge(r,e);return k({prefix:t,name:e,encode:n,decode:i(a=>I(o(a)),"decode")})}i(_,"baseX");function Dt(e,t,r,n){let o=e.length;for(;e[o-1]==="=";)--o;let a=new Uint8Array(o*r/8|0),s=0,c=0,y=0;for(let m=0;m<o;++m){let E=t[e[m]];if(E===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|E,s+=r,s>=8&&(s-=8,a[y++]=255&c>>s)}if(s>=r||(255&c<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return a}i(Dt,"decode");function _t(e,t,r){let n=t[t.length-1]==="=",o=(1<<r)-1,a="",s=0,c=0;for(let y=0;y<e.length;++y)for(c=c<<8|e[y],s+=8;s>r;)s-=r,a+=t[o&c>>s];if(s!==0&&(a+=t[o&c<<r-s]),n)for(;(a.length*r&7)!==0;)a+="=";return a}i(_t,"encode");function Pt(e){let t={};for(let r=0;r<e.length;++r)t[e[r]]=r;return t}i(Pt,"createAlphabetIdx");function f({name:e,prefix:t,bitsPerChar:r,alphabet:n}){let o=Pt(n);return k({prefix:t,name:e,encode(a){return _t(a,n,r)},decode(a){return Dt(a,o,r,e)}})}i(f,"rfc4648");var Lt=_({prefix:"9",name:"base10",alphabet:"0123456789"});var ye={};w(ye,{base16:()=>Nt,base16upper:()=>kt});var Nt=f({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),kt=f({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var de={};w(de,{base2:()=>Tt});var Tt=f({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var he={};w(he,{base256emoji:()=>zt});var Ye=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Bt=Ye.reduce((e,t,r)=>(e[r]=t,e),[]),Mt=Ye.reduce((e,t,r)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return e[n]=r,e},[]);function Ot(e){return e.reduce((t,r)=>(t+=Bt[r],t),"")}i(Ot,"encode");function Vt(e){let t=[];for(let r of e){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=Mt[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);t.push(o)}return new Uint8Array(t)}i(Vt,"decode");var zt=k({prefix:"\u{1F680}",name:"base256emoji",encode:Ot,decode:Vt});var le={};w(le,{base32:()=>T,base32hex:()=>$t,base32hexpad:()=>qt,base32hexpadupper:()=>Xt,base32hexupper:()=>Yt,base32pad:()=>Ft,base32padupper:()=>Gt,base32upper:()=>Ht,base32z:()=>jt});var T=f({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ht=f({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ft=f({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Gt=f({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),$t=f({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Yt=f({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),qt=f({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Xt=f({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),jt=f({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var me={};w(me,{base36:()=>F,base36upper:()=>Jt});var F=_({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Jt=_({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var be={};w(be,{base58btc:()=>v,base58flickr:()=>Qt});var v=_({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Qt=_({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var we={};w(we,{base64:()=>Wt,base64pad:()=>Zt,base64url:()=>er,base64urlpad:()=>tr});var Wt=f({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Zt=f({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),er=f({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),tr=f({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var xe={};w(xe,{base8:()=>rr});var rr=f({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ge={};w(ge,{identity:()=>nr});var nr=k({prefix:"\0",name:"identity",encode:i(e=>He(e),"encode"),decode:i(e=>ze(e),"decode")});var Pn=new TextEncoder,Ln=new TextDecoder;var Ae={};w(Ae,{identity:()=>Cr});var ar=je,qe=128,sr=127,cr=~sr,pr=Math.pow(2,31);function je(e,t,r){t=t||[],r=r||0;for(var n=r;e>=pr;)t[r++]=e&255|qe,e/=128;for(;e&cr;)t[r++]=e&255|qe,e>>>=7;return t[r]=e|0,je.bytes=r-n+1,t}i(je,"encode");var fr=Ee,ur=128,Xe=127;function Ee(e,n){var r=0,n=n||0,o=0,a=n,s,c=e.length;do{if(a>=c)throw Ee.bytes=0,new RangeError("Could not decode varint");s=e[a++],r+=o<28?(s&Xe)<<o:(s&Xe)*Math.pow(2,o),o+=7}while(s>=ur);return Ee.bytes=a-n,r}i(Ee,"read");var yr=Math.pow(2,7),dr=Math.pow(2,14),hr=Math.pow(2,21),lr=Math.pow(2,28),mr=Math.pow(2,35),br=Math.pow(2,42),wr=Math.pow(2,49),xr=Math.pow(2,56),gr=Math.pow(2,63),Er=i(function(e){return e<yr?1:e<dr?2:e<hr?3:e<lr?4:e<mr?5:e<br?6:e<wr?7:e<xr?8:e<gr?9:10},"length"),Ar={encode:ar,decode:fr,encodingLength:Er},Ur=Ar,G=Ur;function $(e,t=0){return[G.decode(e,t),G.decode.bytes]}i($,"decode");function B(e,t,r=0){return G.encode(e,t,r),t}i(B,"encodeTo");function M(e){return G.encodingLength(e)}i(M,"encodingLength");function V(e,t){let r=t.byteLength,n=M(e),o=n+M(r),a=new Uint8Array(o+r);return B(e,a,0),B(r,a,n),a.set(t,o),new O(e,r,t,a)}i(V,"create");function Je(e){let t=I(e),[r,n]=$(t),[o,a]=$(t.subarray(n)),s=t.subarray(n+a);if(s.byteLength!==o)throw new Error("Incorrect length");return new O(r,o,s,t)}i(Je,"decode");function Qe(e,t){if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Ve(e.bytes,r.bytes)}}i(Qe,"equals");var O=class{static{i(this,"Digest")}code;size;digest;bytes;constructor(t,r,n,o){this.code=t,this.size=r,this.digest=n,this.bytes=o}};var We=0,Sr="identity",Ze=I;function vr(e,t){if(t?.truncate!=null&&t.truncate!==e.byteLength){if(t.truncate<0||t.truncate>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,t.truncate)}return V(We,Ze(e))}i(vr,"digest");var Cr={code:We,name:Sr,encode:Ze,digest:vr};var ve={};w(ve,{sha256:()=>Kr,sha512:()=>Rr});var Ir=20;function Se({name:e,code:t,encode:r,minDigestLength:n,maxDigestLength:o}){return new Ue(e,t,r,n,o)}i(Se,"from");var Ue=class{static{i(this,"Hasher")}name;code;encode;minDigestLength;maxDigestLength;constructor(t,r,n,o,a){this.name=t,this.code=r,this.encode=n,this.minDigestLength=o??Ir,this.maxDigestLength=a}digest(t,r){if(r?.truncate!=null){if(r.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&r.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?et(n,this.code,r?.truncate):n.then(o=>et(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function et(e,t,r){if(r!=null&&r!==e.byteLength){if(r>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,r)}return V(t,e)}i(et,"createDigest");function rt(e){return async t=>new Uint8Array(await crypto.subtle.digest(e,t))}i(rt,"sha");var Kr=Se({name:"sha2-256",code:18,encode:rt("SHA-256")}),Rr=Se({name:"sha2-512",code:19,encode:rt("SHA-512")});function nt(e,t){let{bytes:r,version:n}=e;return n===0?_r(r,Ce(e),t??v.encoder):Pr(r,Ce(e),t??T.encoder)}i(nt,"format");var ot=new WeakMap;function Ce(e){let t=ot.get(e);if(t==null){let r=new Map;return ot.set(e,r),r}return t}i(Ce,"baseCache");var te=class e{static{i(this,"CID")}code;version;multihash;bytes;"/";constructor(t,r,n,o){this.code=r,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==q)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Lr)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=V(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n!=null&&t.code===n.code&&t.version===n.version&&Qe(t.multihash,n.multihash)}toString(t){return nt(this,t)}toJSON(){return{"/":nt(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:a,bytes:s}=r;return new e(n,o,a,s??it(n,o,a.bytes))}else if(r[Nr]===!0){let{version:n,multihash:o,code:a}=r,s=Je(o);return e.create(n,a,s)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==q)throw new Error(`Version 0 CID must use dag-pb (code: ${q}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let o=it(t,r,n.bytes);return new e(t,r,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,q,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,o=I(t.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let a=o.subarray(r.multihashSize-r.digestSize),s=new O(r.multihashCode,r.digestSize,a,o);return[r.version===0?e.createV0(s):e.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=i(()=>{let[K,R]=$(t.subarray(r));return r+=R,K},"next"),o=n(),a=q;if(o===18?(o=0,r=0):a=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=r,c=n(),y=n(),m=r+y,E=m-s;return{version:o,codec:a,multihashCode:c,digestSize:y,multihashSize:E,size:m}}static parse(t,r){let[n,o]=Dr(t,r),a=e.decode(o);if(a.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ce(a).set(n,t),a}};function Dr(e,t){switch(e[0]){case"Q":{let r=t??v;return[v.prefix,r.decode(`${v.prefix}${e}`)]}case v.prefix:{let r=t??v;return[v.prefix,r.decode(e)]}case T.prefix:{let r=t??T;return[T.prefix,r.decode(e)]}case F.prefix:{let r=t??F;return[F.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}}i(Dr,"parseCIDtoBytes");function _r(e,t,r){let{prefix:n}=r;if(n!==v.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=t.get(n);if(o==null){let a=r.encode(e).slice(1);return t.set(n,a),a}else return o}i(_r,"toStringV0");function Pr(e,t,r){let{prefix:n}=r,o=t.get(n);if(o==null){let a=r.encode(e);return t.set(n,a),a}else return o}i(Pr,"toStringV1");var q=112,Lr=18;function it(e,t,r){let n=M(e),o=n+M(t),a=new Uint8Array(o+r.byteLength);return B(e,a,0),B(t,a,n),a.set(r,o),a}i(it,"encodeCID");var Nr=Symbol.for("@ipld/js-cid/CID");var Ie={...ge,...de,...xe,...ue,...ye,...le,...me,...be,...we,...he},fo={...ve,...Ae};function st(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}i(st,"createCodec");var at=st("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Ke=st("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=Z(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),kr={utf8:at,"utf-8":at,hex:Ie.base16,latin1:Ke,ascii:Ke,binary:Ke,...Ie},re=kr;function X(e,t="utf8"){let r=re[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}i(X,"fromString");function ne(e,t="utf8"){let r=re[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}i(ne,"toString");var u=class extends Error{static{i(this,"HpkeError")}code;constructor(t,r,n){super(r,n),this.name="HpkeError",this.code=t}};var ct=32,Tr=1,Br=2,Re=32,pt=32,j=12,N=32,De=16,ft=0,_e=new TextEncoder().encode("HPKE-v1"),z=2,Pe=l(new TextEncoder().encode("KEM"),P(ct,2)),H=l(new TextEncoder().encode("HPKE"),P(ct,2),P(Tr,2),P(Br,2)),oe=new TextEncoder().encode("simple-hpke/keyId/v1"),ut=12;var d=globalThis.crypto.subtle;async function dt(e,t,r){let n=await d.importKey("raw",e,{name:"AES-GCM"},!1,["encrypt"]),o=await d.encrypt({name:"AES-GCM",iv:t},n,r);return new Uint8Array(o)}i(dt,"aeadSeal");async function ht(e,t,r){let n=await d.importKey("raw",e,{name:"AES-GCM"},!1,["decrypt"]),o;try{o=await d.decrypt({name:"AES-GCM",iv:t},n,r)}catch(a){throw new u("ERR_DECRYPT_FAILED","failed to decrypt the wrapped key: wrong keypair, wrong info, or a tampered envelope",{cause:a})}return new Uint8Array(o)}i(ht,"aeadOpen");async function ke(e,t,r,n){let o=typeof t=="string"?new TextEncoder().encode(t):t,{wrapped:a,key:s}=await Te(e,r,n),c=globalThis.crypto.getRandomValues(new Uint8Array(j)),y=new Uint8Array(await d.encrypt({name:"AES-GCM",iv:c},s,o));return l(P(a.length,z),a,c,y)}i(ke,"encryptBytes");async function lt(e,t,r,n){let o=await ke(e,t,r,n);return ne(o,n?.encoding??"base64url")}i(lt,"encryptToString");async function mt(e,t){let r=await d.importKey("raw",e,{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return new Uint8Array(await d.sign("HMAC",r,t))}i(mt,"hmac");async function Mr(e,t){let r=e.length===0?new Uint8Array(Re):e;return mt(r,t)}i(Mr,"extract");async function Or(e,t,r){let n=new Uint8Array(r),o=new Uint8Array(0),a=0,s=1;for(;a<r;){o=await mt(e,l(o,t,P(s,1)));let c=Math.min(o.length,r-a);n.set(o.subarray(0,c),a),a+=c,s++}return n}i(Or,"expand");async function J(e,t,r,n){let o=l(_e,e,new TextEncoder().encode(r),n);return Mr(t,o)}i(J,"labeledExtract");async function ie(e,t,r,n,o){let a=l(P(o,2),_e,e,new TextEncoder().encode(r),n);return Or(t,a,o)}i(ie,"labeledExpand");async function Le(e){return new Uint8Array(await d.exportKey("raw",e))}i(Le,"exportRawPublic");async function yt(e){if(e.length!==N)throw new u("ERR_INVALID_RECIPIENT_KEY",`invalid public key length: ${e.length} bytes (expected ${N})`);return d.importKey("raw",e,{name:"X25519"},!0,[])}i(yt,"importRawPublic");async function bt(e){if(e instanceof Uint8Array)return yt(e);if(e instanceof CryptoKey){if(e.type!=="public")throw new u("ERR_INVALID_RECIPIENT_KEY","recipient CryptoKey must be a public key");return Ne(e,"recipient CryptoKey","ERR_INVALID_RECIPIENT_KEY"),e}if(typeof e.publicKey=="string"){let{publicKey:r,encoding:n}=e;return yt(X(r,n??"base64url"))}let t=e;if(t.publicKey instanceof CryptoKey){if(t.publicKey.type!=="public")throw new u("ERR_INVALID_RECIPIENT_KEY","recipient keypair publicKey must be a public key");return Ne(t.publicKey,"recipient keypair publicKey","ERR_INVALID_RECIPIENT_KEY"),t.publicKey}throw new u("ERR_INVALID_RECIPIENT_KEY","unrecognized recipient key form")}i(bt,"resolveRecipientPublicKey");function Ne(e,t,r){if(e.algorithm.name!=="X25519")throw new u(r,`${t} must be an X25519 key (got ${e.algorithm.name})`)}i(Ne,"assertX25519Algorithm");async function wt(e,t){let r=await d.deriveBits({name:"X25519",public:t},e,256),n=new Uint8Array(r);if(n.every(o=>o===0))throw new u("ERR_SMALL_ORDER_KEY","X25519 shared secret is all-zero (small-order public key?)");return n}i(wt,"dh");async function xt(e,t){let r=await J(Pe,new Uint8Array(0),"eae_prk",e);return ie(Pe,r,"shared_secret",t,Re)}i(xt,"extractAndExpand");async function gt(e){let t=await d.generateKey({name:"X25519"},!1,["deriveBits"]),r=await wt(t.privateKey,e),n=await Le(t.publicKey),o=await Le(e),a=l(n,o);return{sharedSecret:await xt(r,a),enc:n}}i(gt,"encap");async function Et(e,t){if(t.privateKey.type!=="private")throw new u("ERR_INVALID_KEYPAIR","keypair.privateKey must be a private key");Ne(t.privateKey,"keypair.privateKey","ERR_INVALID_KEYPAIR");let r=await d.importKey("raw",e,{name:"X25519"},!1,[]),n=await wt(t.privateKey,r),o=await Le(t.publicKey),a=l(e,o);return xt(n,a)}i(Et,"decap");async function Vr(e){if(e.algorithm.name!=="AES-GCM")throw new u("ERR_INVALID_AES_KEY",`keyId needs an AES-GCM key (got ${e.algorithm.name})`);if(!e.usages.includes("encrypt"))throw new u("ERR_INVALID_AES_KEY","keyId needs a key with the 'encrypt' usage");let r=new Uint8Array(await d.digest("SHA-256",oe)).slice(0,ut),n=new Uint8Array(await d.encrypt({name:"AES-GCM",iv:r},e,oe)),o=await d.digest("SHA-256",l(oe,n));return ne(new Uint8Array(o),"base64url")}i(Vr,"keyId");function P(e,t){let r=new Uint8Array(t),n=e;for(let o=t-1;o>=0;o--)r[o]=n&255,n=Math.floor(n/256);return r}i(P,"i2osp");function l(...e){let t=0;for(let o of e)t+=o.length;let r=new Uint8Array(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}i(l,"concat");var ae=globalThis.crypto.subtle;async function Xo(e,t){let{wrapped:r,key:n}=await Te(e,null,t);return{wrapped:r,key:n}}i(Xo,"create");var jo=Object.assign(Yr,{raw:Me}),Jo=Object.assign(ke,{asString:lt}),Qo=Object.assign(Be,{asString:zr,fromString:Hr});async function Be(e,t,r){if(t.byteLength<z)throw new u("ERR_MALFORMED_MESSAGE","malformed message: too short");let n=t[0]<<8|t[1],o=z+n,a=o+j;if(t.byteLength<a+De)throw new u("ERR_MALFORMED_MESSAGE","malformed message: too short");let s=t.slice(z,o),c=t.slice(o,a),y=t.slice(a),m=await Me(e,s,r?.info!==void 0?{info:r.info}:void 0),E=await $r(m),K;try{K=await ae.decrypt({name:"AES-GCM",iv:c},E,y)}catch(R){throw new u("ERR_DECRYPT_FAILED","failed to decrypt the message: tampered ciphertext",{cause:R})}return new Uint8Array(K)}i(Be,"decryptBytes");async function zr(e,t,r){let n=await Be(e,t,r);return new TextDecoder().decode(n)}i(zr,"decryptToString");async function Hr(e,t,r){let n=X(t,"base64url"),o=await Be(e,n,r?.info!==void 0?{info:r.info}:void 0);return r?.buffer?o:new TextDecoder().decode(o)}i(Hr,"decryptFromString");function Fr(e){if(e!==128&&e!==256)throw new u("ERR_INVALID_KEYSIZE",`invalid keysize: ${e} (expected 128 or 256)`)}i(Fr,"validateKeysize");function At(e){if(e.length!==16&&e.length!==32)throw new u("ERR_INVALID_AES_KEY",`invalid aesKey length: ${e.length} bytes (expected 16 or 32)`)}i(At,"validateRawKeyBytes");function Ut(e){return e==null?new Uint8Array(0):typeof e=="string"?new TextEncoder().encode(e):e}i(Ut,"normalizeInfo");async function Gr(e){if(!e.extractable)throw new u("ERR_INVALID_AES_KEY","aesKey must be extractable: its raw bytes are what get sealed");return new Uint8Array(await ae.exportKey("raw",e))}i(Gr,"exportAesKeyBytes");async function St(e,t){return ae.importKey("raw",e,{name:"AES-GCM"},t,["encrypt","decrypt"])}i(St,"importAesKey");async function $r(e){return ae.importKey("raw",e,{name:"AES-GCM"},!1,["decrypt"])}i($r,"importAesKeyDecryptOnly");async function vt(e,t){let r=new Uint8Array(0),n=await J(H,r,"psk_id_hash",r),o=await J(H,r,"info_hash",t),a=l(new Uint8Array([ft]),n,o),s=await J(H,e,"secret",r),c=await ie(H,s,"key",a,pt),y=await ie(H,s,"base_nonce",a,j);return{key:c,baseNonce:y}}i(vt,"keySchedule");async function Me(e,t,r){if(t.byteLength<N+De)throw new u("ERR_MALFORMED_ENVELOPE","malformed envelope: too short");let n=Ut(r?.info),o=t.slice(0,N),a=t.slice(N),s=await Et(o,e),{key:c,baseNonce:y}=await vt(s,n);return ht(c,y,a)}i(Me,"openRawBytes");async function Yr(e,t,r){let n=await Me(e,t,r);return St(n,r?.extractable??!1)}i(Yr,"openBytes");async function Te(e,t,r){let n=Ut(r?.info),o;if(t instanceof Uint8Array)At(t),o=t;else if(t)o=await Gr(t),At(o);else{let Q=r?.size??256;Fr(Q),o=globalThis.crypto.getRandomValues(new Uint8Array(Q/8))}let a=await bt(e),{sharedSecret:s,enc:c}=await gt(a),{key:y,baseNonce:m}=await vt(s,n),E=await dt(y,m,o),K=l(c,E),R=await St(o,r?.extractable??!1);return{wrapped:K,key:R}}i(Te,"encryptKey");export{u as HpkeError,Xo as create,Qo as decrypt,Jo as encrypt,Te as encryptKey,Vr as keyId,jo as open};
|
|
1
|
+
var Ve=Object.defineProperty;var i=(e,t)=>Ve(e,"name",{value:t,configurable:!0});var w=(e,t)=>{for(var r in t)Ve(e,r,{get:t[r],enumerable:!0})};function Z(e=0){return new Uint8Array(e)}i(Z,"allocUnsafe");var ue={};w(ue,{base10:()=>Tt});var dn=new Uint8Array(0);function Oe(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}i(Oe,"equals");function K(e){if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")}i(K,"coerce");function ze(e){return new TextEncoder().encode(e)}i(ze,"fromString");function He(e){return new TextDecoder().decode(e)}i(He,"toString");function Rt(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<e.length;o++){var a=e.charAt(o),s=a.charCodeAt(0);if(r[s]!==255)throw new TypeError(a+" is ambiguous");r[s]=o}var c=e.length,y=e.charAt(0),m=Math.log(c)/Math.log(256),E=Math.log(256)/Math.log(c);function C(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var h=0,P=0,x=0,A=p.length;x!==A&&p[x]===0;)x++,h++;for(var U=(A-x)*E+1>>>0,b=new Uint8Array(U);x!==A;){for(var v=p[x],_=0,g=U-1;(v!==0||_<P)&&g!==-1;g--,_++)v+=256*b[g]>>>0,b[g]=v%c>>>0,v=v/c>>>0;if(v!==0)throw new Error("Non-zero carry");P=_,x++}for(var I=U-P;I!==U&&b[I]===0;)I++;for(var W=y.repeat(h);I<U;++I)W+=e.charAt(b[I]);return W}i(C,"encode");function R(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var h=0;if(p[h]!==" "){for(var P=0,x=0;p[h]===y;)P++,h++;for(var A=(p.length-h)*m+1>>>0,U=new Uint8Array(A);p[h];){var b=r[p.charCodeAt(h)];if(b===255)return;for(var v=0,_=A-1;(b!==0||v<x)&&_!==-1;_--,v++)b+=c*U[_]>>>0,U[_]=b%256>>>0,b=b/256>>>0;if(b!==0)throw new Error("Non-zero carry");x=v,h++}if(p[h]!==" "){for(var g=A-x;g!==A&&U[g]===0;)g++;for(var I=new Uint8Array(P+(A-g)),W=P;g!==A;)I[W++]=U[g++];return I}}}i(R,"decodeUnsafe");function Q(p){var h=R(p);if(h)return h;throw new Error(`Non-${t} character`)}return i(Q,"decode"),{encode:C,decodeUnsafe:R,decode:Q}}i(Rt,"base");var _t=Rt,Dt=_t,Ye=Dt;var se=class{static{i(this,"Encoder")}name;prefix;baseEncode;constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},ce=class{static{i(this,"Decoder")}name;prefix;baseDecode;prefixCodePoint;constructor(t,r,n){this.name=t,this.prefix=r;let o=r.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Fe(this,t)}},fe=class{static{i(this,"ComposedDecoder")}decoders;constructor(t){this.decoders=t}or(t){return Fe(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Fe(e,t){return new fe({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}i(Fe,"or");var pe=class{static{i(this,"Codec")}name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,r,n,o){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new se(t,r,n),this.decoder=new ce(t,r,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function T({name:e,prefix:t,encode:r,decode:n}){return new pe(e,t,r,n)}i(T,"from");function D({name:e,prefix:t,alphabet:r}){let{encode:n,decode:o}=Ye(r,e);return T({prefix:t,name:e,encode:n,decode:i(a=>K(o(a)),"decode")})}i(D,"baseX");function Lt(e,t,r,n){let o=e.length;for(;e[o-1]==="=";)--o;let a=new Uint8Array(o*r/8|0),s=0,c=0,y=0;for(let m=0;m<o;++m){let E=t[e[m]];if(E===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|E,s+=r,s>=8&&(s-=8,a[y++]=255&c>>s)}if(s>=r||(255&c<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return a}i(Lt,"decode");function Pt(e,t,r){let n=t[t.length-1]==="=",o=(1<<r)-1,a="",s=0,c=0;for(let y=0;y<e.length;++y)for(c=c<<8|e[y],s+=8;s>r;)s-=r,a+=t[o&c>>s];if(s!==0&&(a+=t[o&c<<r-s]),n)for(;(a.length*r&7)!==0;)a+="=";return a}i(Pt,"encode");function Nt(e){let t={};for(let r=0;r<e.length;++r)t[e[r]]=r;return t}i(Nt,"createAlphabetIdx");function u({name:e,prefix:t,bitsPerChar:r,alphabet:n}){let o=Nt(n);return T({prefix:t,name:e,encode(a){return Pt(a,n,r)},decode(a){return Lt(a,o,r,e)}})}i(u,"rfc4648");var Tt=D({prefix:"9",name:"base10",alphabet:"0123456789"});var ye={};w(ye,{base16:()=>kt,base16upper:()=>Mt});var kt=u({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Mt=u({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var de={};w(de,{base2:()=>Bt});var Bt=u({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var he={};w(he,{base256emoji:()=>Gt});var $e=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Vt=$e.reduce((e,t,r)=>(e[r]=t,e),[]),Ot=$e.reduce((e,t,r)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return e[n]=r,e},[]);function zt(e){return e.reduce((t,r)=>(t+=Vt[r],t),"")}i(zt,"encode");function Ht(e){let t=[];for(let r of e){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=Ot[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);t.push(o)}return new Uint8Array(t)}i(Ht,"decode");var Gt=T({prefix:"\u{1F680}",name:"base256emoji",encode:zt,decode:Ht});var le={};w(le,{base32:()=>k,base32hex:()=>qt,base32hexpad:()=>jt,base32hexpadupper:()=>Jt,base32hexupper:()=>Xt,base32pad:()=>Ft,base32padupper:()=>$t,base32upper:()=>Yt,base32z:()=>Qt});var k=u({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Yt=u({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ft=u({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),$t=u({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),qt=u({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Xt=u({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),jt=u({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Jt=u({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Qt=u({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var me={};w(me,{base36:()=>G,base36upper:()=>Wt});var G=D({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Wt=D({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var be={};w(be,{base58btc:()=>S,base58flickr:()=>Zt});var S=D({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Zt=D({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var we={};w(we,{base64:()=>er,base64pad:()=>tr,base64url:()=>rr,base64urlpad:()=>nr});var er=u({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),tr=u({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),rr=u({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),nr=u({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var xe={};w(xe,{base8:()=>or});var or=u({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ge={};w(ge,{identity:()=>ir});var ir=T({prefix:"\0",name:"identity",encode:i(e=>He(e),"encode"),decode:i(e=>ze(e),"decode")});var Nn=new TextEncoder,Tn=new TextDecoder;var Ae={};w(Ae,{identity:()=>Kr});var cr=je,qe=128,fr=127,pr=~fr,ur=Math.pow(2,31);function je(e,t,r){t=t||[],r=r||0;for(var n=r;e>=ur;)t[r++]=e&255|qe,e/=128;for(;e≺)t[r++]=e&255|qe,e>>>=7;return t[r]=e|0,je.bytes=r-n+1,t}i(je,"encode");var yr=Ee,dr=128,Xe=127;function Ee(e,n){var r=0,n=n||0,o=0,a=n,s,c=e.length;do{if(a>=c)throw Ee.bytes=0,new RangeError("Could not decode varint");s=e[a++],r+=o<28?(s&Xe)<<o:(s&Xe)*Math.pow(2,o),o+=7}while(s>=dr);return Ee.bytes=a-n,r}i(Ee,"read");var hr=Math.pow(2,7),lr=Math.pow(2,14),mr=Math.pow(2,21),br=Math.pow(2,28),wr=Math.pow(2,35),xr=Math.pow(2,42),gr=Math.pow(2,49),Er=Math.pow(2,56),Ar=Math.pow(2,63),Ur=i(function(e){return e<hr?1:e<lr?2:e<mr?3:e<br?4:e<wr?5:e<xr?6:e<gr?7:e<Er?8:e<Ar?9:10},"length"),vr={encode:cr,decode:yr,encodingLength:Ur},Sr=vr,Y=Sr;function F(e,t=0){return[Y.decode(e,t),Y.decode.bytes]}i(F,"decode");function M(e,t,r=0){return Y.encode(e,t,r),t}i(M,"encodeTo");function B(e){return Y.encodingLength(e)}i(B,"encodingLength");function O(e,t){let r=t.byteLength,n=B(e),o=n+B(r),a=new Uint8Array(o+r);return M(e,a,0),M(r,a,n),a.set(t,o),new V(e,r,t,a)}i(O,"create");function Je(e){let t=K(e),[r,n]=F(t),[o,a]=F(t.subarray(n)),s=t.subarray(n+a);if(s.byteLength!==o)throw new Error("Incorrect length");return new V(r,o,s,t)}i(Je,"decode");function Qe(e,t){if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Oe(e.bytes,r.bytes)}}i(Qe,"equals");var V=class{static{i(this,"Digest")}code;size;digest;bytes;constructor(t,r,n,o){this.code=t,this.size=r,this.digest=n,this.bytes=o}};var We=0,Cr="identity",Ze=K;function Ir(e,t){if(t?.truncate!=null&&t.truncate!==e.byteLength){if(t.truncate<0||t.truncate>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,t.truncate)}return O(We,Ze(e))}i(Ir,"digest");var Kr={code:We,name:Cr,encode:Ze,digest:Ir};var Se={};w(Se,{sha256:()=>_r,sha512:()=>Dr});var Rr=20;function ve({name:e,code:t,encode:r,minDigestLength:n,maxDigestLength:o}){return new Ue(e,t,r,n,o)}i(ve,"from");var Ue=class{static{i(this,"Hasher")}name;code;encode;minDigestLength;maxDigestLength;constructor(t,r,n,o,a){this.name=t,this.code=r,this.encode=n,this.minDigestLength=o??Rr,this.maxDigestLength=a}digest(t,r){if(r?.truncate!=null){if(r.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&r.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?et(n,this.code,r?.truncate):n.then(o=>et(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function et(e,t,r){if(r!=null&&r!==e.byteLength){if(r>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,r)}return O(t,e)}i(et,"createDigest");function rt(e){return async t=>new Uint8Array(await crypto.subtle.digest(e,t))}i(rt,"sha");var _r=ve({name:"sha2-256",code:18,encode:rt("SHA-256")}),Dr=ve({name:"sha2-512",code:19,encode:rt("SHA-512")});function nt(e,t){let{bytes:r,version:n}=e;return n===0?Pr(r,Ce(e),t??S.encoder):Nr(r,Ce(e),t??k.encoder)}i(nt,"format");var ot=new WeakMap;function Ce(e){let t=ot.get(e);if(t==null){let r=new Map;return ot.set(e,r),r}return t}i(Ce,"baseCache");var te=class e{static{i(this,"CID")}code;version;multihash;bytes;"/";constructor(t,r,n,o){this.code=r,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==q)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Tr)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=O(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n!=null&&t.code===n.code&&t.version===n.version&&Qe(t.multihash,n.multihash)}toString(t){return nt(this,t)}toJSON(){return{"/":nt(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:a,bytes:s}=r;return new e(n,o,a,s??it(n,o,a.bytes))}else if(r[kr]===!0){let{version:n,multihash:o,code:a}=r,s=Je(o);return e.create(n,a,s)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==q)throw new Error(`Version 0 CID must use dag-pb (code: ${q}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let o=it(t,r,n.bytes);return new e(t,r,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,q,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,o=K(t.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let a=o.subarray(r.multihashSize-r.digestSize),s=new V(r.multihashCode,r.digestSize,a,o);return[r.version===0?e.createV0(s):e.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=i(()=>{let[C,R]=F(t.subarray(r));return r+=R,C},"next"),o=n(),a=q;if(o===18?(o=0,r=0):a=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=r,c=n(),y=n(),m=r+y,E=m-s;return{version:o,codec:a,multihashCode:c,digestSize:y,multihashSize:E,size:m}}static parse(t,r){let[n,o]=Lr(t,r),a=e.decode(o);if(a.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ce(a).set(n,t),a}};function Lr(e,t){switch(e[0]){case"Q":{let r=t??S;return[S.prefix,r.decode(`${S.prefix}${e}`)]}case S.prefix:{let r=t??S;return[S.prefix,r.decode(e)]}case k.prefix:{let r=t??k;return[k.prefix,r.decode(e)]}case G.prefix:{let r=t??G;return[G.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}}i(Lr,"parseCIDtoBytes");function Pr(e,t,r){let{prefix:n}=r;if(n!==S.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=t.get(n);if(o==null){let a=r.encode(e).slice(1);return t.set(n,a),a}else return o}i(Pr,"toStringV0");function Nr(e,t,r){let{prefix:n}=r,o=t.get(n);if(o==null){let a=r.encode(e);return t.set(n,a),a}else return o}i(Nr,"toStringV1");var q=112,Tr=18;function it(e,t,r){let n=B(e),o=n+B(t),a=new Uint8Array(o+r.byteLength);return M(e,a,0),M(t,a,n),a.set(r,o),a}i(it,"encodeCID");var kr=Symbol.for("@ipld/js-cid/CID");var Ie={...ge,...de,...xe,...ue,...ye,...le,...me,...be,...we,...he},yo={...Se,...Ae};function st(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}i(st,"createCodec");var at=st("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Ke=st("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=Z(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),Mr={utf8:at,"utf-8":at,hex:Ie.base16,latin1:Ke,ascii:Ke,binary:Ke,...Ie},re=Mr;function X(e,t="utf8"){let r=re[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}i(X,"fromString");function ne(e,t="utf8"){let r=re[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}i(ne,"toString");var f=class extends Error{static{i(this,"HpkeError")}code;constructor(t,r,n){super(r,n),this.name="HpkeError",this.code=t}};var ct=32,Br=1,Vr=2,Re=32,ft=32,j=12,N=32,_e=16,pt=0,De=new TextEncoder().encode("HPKE-v1"),z=2,Le=l(new TextEncoder().encode("KEM"),L(ct,2)),H=l(new TextEncoder().encode("HPKE"),L(ct,2),L(Br,2),L(Vr,2)),oe=new TextEncoder().encode("simple-hpke/keyId/v1"),ut=12;var d=globalThis.crypto.subtle;async function ht(e,t,r){let n=await d.importKey("raw",e,{name:"AES-GCM"},!1,["encrypt"]),o=await d.encrypt({name:"AES-GCM",iv:t},n,r);return new Uint8Array(o)}i(ht,"aeadSeal");async function lt(e,t,r){let n=await d.importKey("raw",e,{name:"AES-GCM"},!1,["decrypt"]),o;try{o=await d.decrypt({name:"AES-GCM",iv:t},n,r)}catch(a){throw new f("ERR_DECRYPT_FAILED","failed to decrypt the wrapped key: wrong keypair, wrong info, or a tampered envelope",{cause:a})}return new Uint8Array(o)}i(lt,"aeadOpen");async function Te(e,t,r,n){if(r instanceof CryptoKey&&!r.usages.includes("encrypt"))throw new f("ERR_INVALID_AES_KEY",'aesKey is missing the "encrypt" usage, which encrypt needs to encrypt the message');let o=typeof t=="string"?new TextEncoder().encode(t):t,{wrapped:a,key:s}=await ke(e,r,n),c=globalThis.crypto.getRandomValues(new Uint8Array(j)),y=new Uint8Array(await d.encrypt({name:"AES-GCM",iv:c},s,o));return l(L(a.length,z),a,c,y)}i(Te,"encryptBytes");async function mt(e,t,r,n){let o=await Te(e,t,r,n);return ne(o,n?.encoding??"base64url")}i(mt,"encryptToString");async function bt(e,t){let r=await d.importKey("raw",e,{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return new Uint8Array(await d.sign("HMAC",r,t))}i(bt,"hmac");async function Or(e,t){let r=e.length===0?new Uint8Array(Re):e;return bt(r,t)}i(Or,"extract");async function zr(e,t,r){let n=new Uint8Array(r),o=new Uint8Array(0),a=0,s=1;for(;a<r;){o=await bt(e,l(o,t,L(s,1)));let c=Math.min(o.length,r-a);n.set(o.subarray(0,c),a),a+=c,s++}return n}i(zr,"expand");async function J(e,t,r,n){let o=l(De,e,new TextEncoder().encode(r),n);return Or(t,o)}i(J,"labeledExtract");async function ie(e,t,r,n,o){let a=l(L(o,2),De,e,new TextEncoder().encode(r),n);return zr(t,a,o)}i(ie,"labeledExpand");async function Pe(e){return new Uint8Array(await d.exportKey("raw",e))}i(Pe,"exportRawPublic");async function yt(e){if(e.length!==N)throw new f("ERR_INVALID_RECIPIENT_KEY",`invalid public key length: ${e.length} bytes (expected ${N})`);return d.importKey("raw",e,{name:"X25519"},!0,[])}i(yt,"importRawPublic");async function wt(e){if(e instanceof Uint8Array)return yt(e);if(e instanceof CryptoKey)return dt(e,"recipient CryptoKey");if(typeof e.publicKey=="string"){let{publicKey:r,encoding:n}=e,o;try{o=X(r,n??"base64url")}catch(a){throw new f("ERR_INVALID_RECIPIENT_KEY",`recipient publicKey string does not decode as ${n??"base64url"}`,{cause:a})}return yt(o)}let t=e;if(t.publicKey instanceof CryptoKey)return dt(t.publicKey,"recipient keypair publicKey");throw new f("ERR_INVALID_RECIPIENT_KEY","unrecognized recipient key form")}i(wt,"resolveRecipientPublicKey");function dt(e,t){if(e.type!=="public")throw new f("ERR_INVALID_RECIPIENT_KEY",`${t} must be a public key`);if(Ne(e,t,"ERR_INVALID_RECIPIENT_KEY"),!e.extractable)throw new f("ERR_INVALID_RECIPIENT_KEY",`${t} must be extractable (the KEM exports it)`);return e}i(dt,"assertRecipientPublicKey");function Ne(e,t,r){if(e.algorithm.name!=="X25519")throw new f(r,`${t} must be an X25519 key (got ${e.algorithm.name})`)}i(Ne,"assertX25519Algorithm");async function xt(e,t){let r;try{r=await d.deriveBits({name:"X25519",public:t},e,256)}catch(o){throw o?.name==="OperationError"?new f("ERR_SMALL_ORDER_KEY","X25519 deriveBits rejected a small-order public key",{cause:o}):o}let n=new Uint8Array(r);if(n.every(o=>o===0))throw new f("ERR_SMALL_ORDER_KEY","X25519 shared secret is all-zero (small-order public key?)");return n}i(xt,"dh");async function gt(e,t){let r=await J(Le,new Uint8Array(0),"eae_prk",e);return ie(Le,r,"shared_secret",t,Re)}i(gt,"extractAndExpand");async function Et(e){let t=await d.generateKey({name:"X25519"},!1,["deriveBits"]),r=await xt(t.privateKey,e),n=await Pe(t.publicKey),o=await Pe(e),a=l(n,o);return{sharedSecret:await gt(r,a),enc:n}}i(Et,"encap");async function At(e,t){if(t.privateKey.type!=="private")throw new f("ERR_INVALID_KEYPAIR","keypair.privateKey must be a private key");if(Ne(t.privateKey,"keypair.privateKey","ERR_INVALID_KEYPAIR"),!t.privateKey.usages.includes("deriveBits"))throw new f("ERR_INVALID_KEYPAIR","keypair.privateKey must have the deriveBits usage");if(t.publicKey.type!=="public"||!t.publicKey.extractable)throw new f("ERR_INVALID_KEYPAIR","keypair.publicKey must be an extractable public key");Ne(t.publicKey,"keypair.publicKey","ERR_INVALID_KEYPAIR");let r=await d.importKey("raw",e,{name:"X25519"},!1,[]),n=await xt(t.privateKey,r),o=await Pe(t.publicKey),a=l(e,o);return gt(n,a)}i(At,"decap");async function Ut(e){if(e.algorithm.name!=="AES-GCM")throw new f("ERR_INVALID_AES_KEY",`keyId needs an AES-GCM key (got ${e.algorithm.name})`);if(!e.usages.includes("encrypt"))throw new f("ERR_INVALID_AES_KEY","keyId needs a key with the 'encrypt' usage");let r=new Uint8Array(await d.digest("SHA-256",oe)).slice(0,ut),n=new Uint8Array(await d.encrypt({name:"AES-GCM",iv:r},e,oe)),o=await d.digest("SHA-256",l(oe,n));return ne(new Uint8Array(o),"base64url")}i(Ut,"keyId");async function Hr(e,t){let r=await Ut(e);if(r.length!==t.length)return!1;let n=0;for(let o=0;o<r.length;o++)n|=r.charCodeAt(o)^t.charCodeAt(o);return n===0}i(Hr,"verifyKeyId");function L(e,t){let r=new Uint8Array(t),n=e;for(let o=t-1;o>=0;o--)r[o]=n&255,n=Math.floor(n/256);return r}i(L,"i2osp");function l(...e){let t=0;for(let o of e)t+=o.length;let r=new Uint8Array(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}i(l,"concat");var ae=globalThis.crypto.subtle;async function Jo(e,t){let{wrapped:r,key:n}=await ke(e,null,t);return{wrapped:r,key:n}}i(Jo,"create");var Qo=Object.assign(Xr,{raw:Be}),Wo=Object.assign(Te,{asString:mt}),Zo=Object.assign(Me,{asString:Gr,fromString:Yr});async function Me(e,t,r){if(t.byteLength<z)throw new f("ERR_MALFORMED_MESSAGE","malformed message: too short");let n=t[0]<<8|t[1],o=z+n,a=o+j;if(t.byteLength<a+_e)throw new f("ERR_MALFORMED_MESSAGE","malformed message: too short");let s=t.slice(z,o),c=t.slice(o,a),y=t.slice(a),m=await Be(e,s,r?.info!==void 0?{info:r.info}:void 0),E=await qr(m),C;try{C=await ae.decrypt({name:"AES-GCM",iv:c},E,y)}catch(R){throw new f("ERR_DECRYPT_FAILED","failed to decrypt the message: tampered ciphertext",{cause:R})}return new Uint8Array(C)}i(Me,"decryptBytes");async function Gr(e,t,r){let n=await Me(e,t,r);return new TextDecoder().decode(n)}i(Gr,"decryptToString");async function Yr(e,t,r){let n;try{n=X(t,"base64url")}catch(a){throw new f("ERR_MALFORMED_MESSAGE","malformed message: not base64url",{cause:a})}let o=await Me(e,n,r?.info!==void 0?{info:r.info}:void 0);return r?.buffer?o:new TextDecoder().decode(o)}i(Yr,"decryptFromString");function Fr(e){if(e!==128&&e!==256)throw new f("ERR_INVALID_KEYSIZE",`invalid keysize: ${e} (expected 128 or 256)`)}i(Fr,"validateKeysize");function vt(e){if(e.length!==16&&e.length!==32)throw new f("ERR_INVALID_AES_KEY",`invalid aesKey length: ${e.length} bytes (expected 16 or 32)`)}i(vt,"validateRawKeyBytes");function St(e){return e==null?new Uint8Array(0):typeof e=="string"?new TextEncoder().encode(e):e}i(St,"normalizeInfo");async function $r(e){if(!e.extractable)throw new f("ERR_INVALID_AES_KEY","aesKey must be extractable: its raw bytes are what get sealed");return new Uint8Array(await ae.exportKey("raw",e))}i($r,"exportAesKeyBytes");async function Ct(e,t){return ae.importKey("raw",e,{name:"AES-GCM"},t,["encrypt","decrypt"])}i(Ct,"importAesKey");async function qr(e){return ae.importKey("raw",e,{name:"AES-GCM"},!1,["decrypt"])}i(qr,"importAesKeyDecryptOnly");async function It(e,t){let r=new Uint8Array(0),n=await J(H,r,"psk_id_hash",r),o=await J(H,r,"info_hash",t),a=l(new Uint8Array([pt]),n,o),s=await J(H,e,"secret",r),c=await ie(H,s,"key",a,ft),y=await ie(H,s,"base_nonce",a,j);return{key:c,baseNonce:y}}i(It,"keySchedule");async function Be(e,t,r){if(t.byteLength<N+_e)throw new f("ERR_MALFORMED_ENVELOPE","malformed envelope: too short");let n=St(r?.info),o=t.slice(0,N),a=t.slice(N),s=await At(o,e),{key:c,baseNonce:y}=await It(s,n);return lt(c,y,a)}i(Be,"openRawBytes");async function Xr(e,t,r){let n=await Be(e,t,r);return Ct(n,r?.extractable??!1)}i(Xr,"openBytes");async function ke(e,t,r){let n=St(r?.info),o;if(t instanceof Uint8Array)vt(t),o=t;else if(t){if(t.algorithm.name!=="AES-GCM")throw new f("ERR_INVALID_AES_KEY","aesKey must be an AES-GCM key, got "+t.algorithm.name);o=await $r(t),vt(o)}else{let Q=r?.size??256;Fr(Q),o=globalThis.crypto.getRandomValues(new Uint8Array(Q/8))}let a=await wt(e),{sharedSecret:s,enc:c}=await Et(a),{key:y,baseNonce:m}=await It(s,n),E=await ht(y,m,o),C=l(c,E);if(t instanceof CryptoKey)return{wrapped:C,key:t};let R=await Ct(o,r?.extractable??!1);return{wrapped:C,key:R}}i(ke,"encryptKey");export{f as HpkeError,Jo as create,Zo as decrypt,Wo as encrypt,ke as encryptKey,Ut as keyId,Qo as open,Hr as verifyKeyId};
|
|
2
2
|
//# sourceMappingURL=index.min.js.map
|