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.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Z=Object.defineProperty;var It=Object.getOwnPropertyDescriptor;var Kt=Object.getOwnPropertyNames;var Rt=Object.prototype.hasOwnProperty;var i=(e,t)=>Z(e,"name",{value:t,configurable:!0});var l=(e,t)=>{for(var r in t)Z(e,r,{get:t[r],enumerable:!0})},Dt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Kt(t))!Rt.call(e,o)&&o!==r&&Z(e,o,{get:()=>t[o],enumerable:!(n=It(t,o))||n.enumerable});return e};var _t=e=>Dt(Z({},"__esModule",{value:!0}),e);var rn={};l(rn,{HpkeError:()=>f,create:()=>Yr,decrypt:()=>jr,encrypt:()=>Xr,encryptKey:()=>se,keyId:()=>At,open:()=>qr});module.exports=_t(rn);function ee(e=0){return new Uint8Array(e)}i(ee,"allocUnsafe");var de={};l(de,{base10:()=>Ot});var En=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 Lt(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),b=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,w=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*w[g]>>>0,w[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&&w[C]===0;)C++;for(var W=y.repeat(h);C<U;++C)W+=e.charAt(w[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)*b+1>>>0,U=new Uint8Array(A);p[h];){var w=r[p.charCodeAt(h)];if(w===255)return;for(var S=0,D=A-1;(w!==0||S<x)&&D!==-1;D--,S++)w+=c*U[D]>>>0,U[D]=w%256>>>0,w=w/256>>>0;if(w!==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(Lt,"base");var Nt=Lt,kt=Nt,Ge=kt;var pe=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")}},fe=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)}},ue=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 ue({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}i($e,"or");var ye=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 pe(t,r,n),this.decoder=new fe(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 ye(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 Tt(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 b=0;b<o;++b){let E=t[e[b]];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(Tt,"decode");function Bt(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(Bt,"encode");function Mt(e){let t={};for(let r=0;r<e.length;++r)t[e[r]]=r;return t}i(Mt,"createAlphabetIdx");function u({name:e,prefix:t,bitsPerChar:r,alphabet:n}){let o=Mt(n);return k({prefix:t,name:e,encode(a){return Bt(a,n,r)},decode(a){return Tt(a,o,r,e)}})}i(u,"rfc4648");var Ot=_({prefix:"9",name:"base10",alphabet:"0123456789"});var he={};l(he,{base16:()=>Vt,base16upper:()=>zt});var Vt=u({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),zt=u({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var le={};l(le,{base2:()=>Ht});var Ht=u({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var me={};l(me,{base256emoji:()=>qt});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}"),Ft=Ye.reduce((e,t,r)=>(e[r]=t,e),[]),Gt=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 $t(e){return e.reduce((t,r)=>(t+=Ft[r],t),"")}i($t,"encode");function Yt(e){let t=[];for(let r of e){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=Gt[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);t.push(o)}return new Uint8Array(t)}i(Yt,"decode");var qt=k({prefix:"\u{1F680}",name:"base256emoji",encode:$t,decode:Yt});var be={};l(be,{base32:()=>T,base32hex:()=>Qt,base32hexpad:()=>Zt,base32hexpadupper:()=>er,base32hexupper:()=>Wt,base32pad:()=>jt,base32padupper:()=>Jt,base32upper:()=>Xt,base32z:()=>tr});var T=u({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Xt=u({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),jt=u({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Jt=u({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Qt=u({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Wt=u({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Zt=u({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),er=u({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),tr=u({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var we={};l(we,{base36:()=>F,base36upper:()=>rr});var F=_({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),rr=_({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var xe={};l(xe,{base58btc:()=>v,base58flickr:()=>nr});var v=_({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),nr=_({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ge={};l(ge,{base64:()=>or,base64pad:()=>ir,base64url:()=>ar,base64urlpad:()=>sr});var or=u({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ir=u({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ar=u({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),sr=u({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ee={};l(Ee,{base8:()=>cr});var cr=u({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ae={};l(Ae,{identity:()=>pr});var pr=k({prefix:"\0",name:"identity",encode:i(e=>He(e),"encode"),decode:i(e=>ze(e),"decode")});var Hn=new TextEncoder,Fn=new TextDecoder;var Se={};l(Se,{identity:()=>Pr});var yr=je,qe=128,dr=127,hr=~dr,lr=Math.pow(2,31);function je(e,t,r){t=t||[],r=r||0;for(var n=r;e>=lr;)t[r++]=e&255|qe,e/=128;for(;e&hr;)t[r++]=e&255|qe,e>>>=7;return t[r]=e|0,je.bytes=r-n+1,t}i(je,"encode");var mr=Ue,br=128,Xe=127;function Ue(e,n){var r=0,n=n||0,o=0,a=n,s,c=e.length;do{if(a>=c)throw Ue.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>=br);return Ue.bytes=a-n,r}i(Ue,"read");var wr=Math.pow(2,7),xr=Math.pow(2,14),gr=Math.pow(2,21),Er=Math.pow(2,28),Ar=Math.pow(2,35),Ur=Math.pow(2,42),Sr=Math.pow(2,49),vr=Math.pow(2,56),Cr=Math.pow(2,63),Ir=i(function(e){return e<wr?1:e<xr?2:e<gr?3:e<Er?4:e<Ar?5:e<Ur?6:e<Sr?7:e<vr?8:e<Cr?9:10},"length"),Kr={encode:yr,decode:mr,encodingLength:Ir},Rr=Kr,G=Rr;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,Dr="identity",Ze=I;function _r(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(_r,"digest");var Pr={code:We,name:Dr,encode:Ze,digest:_r};var Ie={};l(Ie,{sha256:()=>Nr,sha512:()=>kr});var Lr=20;function Ce({name:e,code:t,encode:r,minDigestLength:n,maxDigestLength:o}){return new ve(e,t,r,n,o)}i(Ce,"from");var ve=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??Lr,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 Nr=Ce({name:"sha2-256",code:18,encode:rt("SHA-256")}),kr=Ce({name:"sha2-512",code:19,encode:rt("SHA-512")});function nt(e,t){let{bytes:r,version:n}=e;return n===0?Br(r,Ke(e),t??v.encoder):Mr(r,Ke(e),t??T.encoder)}i(nt,"format");var ot=new WeakMap;function Ke(e){let t=ot.get(e);if(t==null){let r=new Map;return ot.set(e,r),r}return t}i(Ke,"baseCache");var re=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!==Or)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[Vr]===!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(),b=r+y,E=b-s;return{version:o,codec:a,multihashCode:c,digestSize:y,multihashSize:E,size:b}}static parse(t,r){let[n,o]=Tr(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 Ke(a).set(n,t),a}};function Tr(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(Tr,"parseCIDtoBytes");function Br(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(Br,"toStringV0");function Mr(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(Mr,"toStringV1");var q=112,Or=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 Vr=Symbol.for("@ipld/js-cid/CID");var Re={...Ae,...le,...Ee,...de,...he,...be,...we,...xe,...ge,...me},Eo={...Ie,...Se};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))),De=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=ee(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),zr={utf8:at,"utf-8":at,hex:Re.base16,latin1:De,ascii:De,binary:De,...Re},ne=zr;function X(e,t="utf8"){let r=ne[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}i(X,"fromString");function oe(e,t="utf8"){let r=ne[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}i(oe,"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,Hr=1,Fr=2,_e=32,pt=32,j=12,N=32,Pe=16,ft=0,Le=new TextEncoder().encode("HPKE-v1"),z=2,Ne=m(new TextEncoder().encode("KEM"),P(ct,2)),H=m(new TextEncoder().encode("HPKE"),P(ct,2),P(Hr,2),P(Fr,2)),ie=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 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(ht,"aeadOpen");async function Be(e,t,r,n){let o=typeof t=="string"?new TextEncoder().encode(t):t,{wrapped:a,key:s}=await se(e,r,n),c=globalThis.crypto.getRandomValues(new Uint8Array(j)),y=new Uint8Array(await d.encrypt({name:"AES-GCM",iv:c},s,o));return m(P(a.length,z),a,c,y)}i(Be,"encryptBytes");async function lt(e,t,r,n){let o=await Be(e,t,r,n);return oe(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 Gr(e,t){let r=e.length===0?new Uint8Array(_e):e;return mt(r,t)}i(Gr,"extract");async function $r(e,t,r){let n=new Uint8Array(r),o=new Uint8Array(0),a=0,s=1;for(;a<r;){o=await mt(e,m(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($r,"expand");async function J(e,t,r,n){let o=m(Le,e,new TextEncoder().encode(r),n);return Gr(t,o)}i(J,"labeledExtract");async function ae(e,t,r,n,o){let a=m(P(o,2),Le,e,new TextEncoder().encode(r),n);return $r(t,a,o)}i(ae,"labeledExpand");async function ke(e){return new Uint8Array(await d.exportKey("raw",e))}i(ke,"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 bt(e){if(e instanceof Uint8Array)return yt(e);if(e instanceof CryptoKey){if(e.type!=="public")throw new f("ERR_INVALID_RECIPIENT_KEY","recipient CryptoKey must be a public key");return Te(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 f("ERR_INVALID_RECIPIENT_KEY","recipient keypair publicKey must be a public key");return Te(t.publicKey,"recipient keypair publicKey","ERR_INVALID_RECIPIENT_KEY"),t.publicKey}throw new f("ERR_INVALID_RECIPIENT_KEY","unrecognized recipient key form")}i(bt,"resolveRecipientPublicKey");function Te(e,t,r){if(e.algorithm.name!=="X25519")throw new f(r,`${t} must be an X25519 key (got ${e.algorithm.name})`)}i(Te,"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 f("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(Ne,new Uint8Array(0),"eae_prk",e);return ae(Ne,r,"shared_secret",t,_e)}i(xt,"extractAndExpand");async function gt(e){let t=await d.generateKey({name:"X25519"},!1,["deriveBits"]),r=await wt(t.privateKey,e),n=await ke(t.publicKey),o=await ke(e),a=m(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 f("ERR_INVALID_KEYPAIR","keypair.privateKey must be a private key");Te(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 ke(t.publicKey),a=m(e,o);return xt(n,a)}i(Et,"decap");async function At(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",ie)).slice(0,ut),n=new Uint8Array(await d.encrypt({name:"AES-GCM",iv:r},e,ie)),o=await d.digest("SHA-256",m(ie,n));return oe(new Uint8Array(o),"base64url")}i(At,"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 m(...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(m,"concat");var ce=globalThis.crypto.subtle;async function Yr(e,t){let{wrapped:r,key:n}=await se(e,null,t);return{wrapped:r,key:n}}i(Yr,"create");var qr=Object.assign(tn,{raw:Oe}),Xr=Object.assign(Be,{asString:lt}),jr=Object.assign(Me,{asString:Jr,fromString:Qr});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+Pe)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),b=await Oe(e,s,r?.info!==void 0?{info:r.info}:void 0),E=await en(b),K;try{K=await ce.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(K)}i(Me,"decryptBytes");async function Jr(e,t,r){let n=await Me(e,t,r);return new TextDecoder().decode(n)}i(Jr,"decryptToString");async function Qr(e,t,r){let n=X(t,"base64url"),o=await Me(e,n,r?.info!==void 0?{info:r.info}:void 0);return r?.buffer?o:new TextDecoder().decode(o)}i(Qr,"decryptFromString");function Wr(e){if(e!==128&&e!==256)throw new f("ERR_INVALID_KEYSIZE",`invalid keysize: ${e} (expected 128 or 256)`)}i(Wr,"validateKeysize");function Ut(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(Ut,"validateRawKeyBytes");function St(e){return e==null?new Uint8Array(0):typeof e=="string"?new TextEncoder().encode(e):e}i(St,"normalizeInfo");async function Zr(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 ce.exportKey("raw",e))}i(Zr,"exportAesKeyBytes");async function vt(e,t){return ce.importKey("raw",e,{name:"AES-GCM"},t,["encrypt","decrypt"])}i(vt,"importAesKey");async function en(e){return ce.importKey("raw",e,{name:"AES-GCM"},!1,["decrypt"])}i(en,"importAesKeyDecryptOnly");async function Ct(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=m(new Uint8Array([ft]),n,o),s=await J(H,e,"secret",r),c=await ae(H,s,"key",a,pt),y=await ae(H,s,"base_nonce",a,j);return{key:c,baseNonce:y}}i(Ct,"keySchedule");async function Oe(e,t,r){if(t.byteLength<N+Pe)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 Et(o,e),{key:c,baseNonce:y}=await Ct(s,n);return ht(c,y,a)}i(Oe,"openRawBytes");async function tn(e,t,r){let n=await Oe(e,t,r);return vt(n,r?.extractable??!1)}i(tn,"openBytes");async function se(e,t,r){let n=St(r?.info),o;if(t instanceof Uint8Array)Ut(t),o=t;else if(t)o=await Zr(t),Ut(o);else{let Q=r?.size??256;Wr(Q),o=globalThis.crypto.getRandomValues(new Uint8Array(Q/8))}let a=await bt(e),{sharedSecret:s,enc:c}=await gt(a),{key:y,baseNonce:b}=await Ct(s,n),E=await dt(y,b,o),K=m(c,E),R=await vt(o,r?.extractable??!1);return{wrapped:K,key:R}}i(se,"encryptKey");
|
|
1
|
+
"use strict";var Z=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var _t=Object.getOwnPropertyNames;var Dt=Object.prototype.hasOwnProperty;var i=(e,t)=>Z(e,"name",{value:t,configurable:!0});var l=(e,t)=>{for(var r in t)Z(e,r,{get:t[r],enumerable:!0})},Lt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _t(t))!Dt.call(e,o)&&o!==r&&Z(e,o,{get:()=>t[o],enumerable:!(n=Rt(t,o))||n.enumerable});return e};var Pt=e=>Lt(Z({},"__esModule",{value:!0}),e);var on={};l(on,{HpkeError:()=>f,create:()=>Xr,decrypt:()=>Qr,encrypt:()=>Jr,encryptKey:()=>se,keyId:()=>Be,open:()=>jr,verifyKeyId:()=>vt});module.exports=Pt(on);function ee(e=0){return new Uint8Array(e)}i(ee,"allocUnsafe");var de={};l(de,{base10:()=>zt});var Un=new Uint8Array(0);function ze(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(ze,"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 He(e){return new TextEncoder().encode(e)}i(He,"fromString");function Ge(e){return new TextDecoder().decode(e)}i(Ge,"toString");function Tt(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),b=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,w=new Uint8Array(U);x!==A;){for(var v=p[x],_=0,g=U-1;(v!==0||_<P)&&g!==-1;g--,_++)v+=256*w[g]>>>0,w[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&&w[I]===0;)I++;for(var W=y.repeat(h);I<U;++I)W+=e.charAt(w[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)*b+1>>>0,U=new Uint8Array(A);p[h];){var w=r[p.charCodeAt(h)];if(w===255)return;for(var v=0,_=A-1;(w!==0||v<x)&&_!==-1;_--,v++)w+=c*U[_]>>>0,U[_]=w%256>>>0,w=w/256>>>0;if(w!==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(Tt,"base");var kt=Tt,Mt=kt,Fe=Mt;var fe=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")}},pe=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)}},ue=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 ue({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}i($e,"or");var ye=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 fe(t,r,n),this.decoder=new pe(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 ye(e,t,r,n)}i(T,"from");function D({name:e,prefix:t,alphabet:r}){let{encode:n,decode:o}=Fe(r,e);return T({prefix:t,name:e,encode:n,decode:i(a=>K(o(a)),"decode")})}i(D,"baseX");function Bt(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 b=0;b<o;++b){let E=t[e[b]];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(Bt,"decode");function Vt(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(Vt,"encode");function Ot(e){let t={};for(let r=0;r<e.length;++r)t[e[r]]=r;return t}i(Ot,"createAlphabetIdx");function u({name:e,prefix:t,bitsPerChar:r,alphabet:n}){let o=Ot(n);return T({prefix:t,name:e,encode(a){return Vt(a,n,r)},decode(a){return Bt(a,o,r,e)}})}i(u,"rfc4648");var zt=D({prefix:"9",name:"base10",alphabet:"0123456789"});var he={};l(he,{base16:()=>Ht,base16upper:()=>Gt});var Ht=u({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Gt=u({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var le={};l(le,{base2:()=>Yt});var Yt=u({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var me={};l(me,{base256emoji:()=>jt});var qe=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}"),Ft=qe.reduce((e,t,r)=>(e[r]=t,e),[]),$t=qe.reduce((e,t,r)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return e[n]=r,e},[]);function qt(e){return e.reduce((t,r)=>(t+=Ft[r],t),"")}i(qt,"encode");function Xt(e){let t=[];for(let r of e){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=$t[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);t.push(o)}return new Uint8Array(t)}i(Xt,"decode");var jt=T({prefix:"\u{1F680}",name:"base256emoji",encode:qt,decode:Xt});var be={};l(be,{base32:()=>k,base32hex:()=>Zt,base32hexpad:()=>tr,base32hexpadupper:()=>rr,base32hexupper:()=>er,base32pad:()=>Qt,base32padupper:()=>Wt,base32upper:()=>Jt,base32z:()=>nr});var k=u({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Jt=u({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Qt=u({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Wt=u({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Zt=u({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),er=u({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),tr=u({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),rr=u({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),nr=u({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var we={};l(we,{base36:()=>G,base36upper:()=>or});var G=D({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),or=D({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var xe={};l(xe,{base58btc:()=>S,base58flickr:()=>ir});var S=D({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),ir=D({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ge={};l(ge,{base64:()=>ar,base64pad:()=>sr,base64url:()=>cr,base64urlpad:()=>fr});var ar=u({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),sr=u({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),cr=u({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),fr=u({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ee={};l(Ee,{base8:()=>pr});var pr=u({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ae={};l(Ae,{identity:()=>ur});var ur=T({prefix:"\0",name:"identity",encode:i(e=>Ge(e),"encode"),decode:i(e=>He(e),"decode")});var Yn=new TextEncoder,Fn=new TextDecoder;var ve={};l(ve,{identity:()=>Nr});var hr=Je,Xe=128,lr=127,mr=~lr,br=Math.pow(2,31);function Je(e,t,r){t=t||[],r=r||0;for(var n=r;e>=br;)t[r++]=e&255|Xe,e/=128;for(;e&mr;)t[r++]=e&255|Xe,e>>>=7;return t[r]=e|0,Je.bytes=r-n+1,t}i(Je,"encode");var wr=Ue,xr=128,je=127;function Ue(e,n){var r=0,n=n||0,o=0,a=n,s,c=e.length;do{if(a>=c)throw Ue.bytes=0,new RangeError("Could not decode varint");s=e[a++],r+=o<28?(s&je)<<o:(s&je)*Math.pow(2,o),o+=7}while(s>=xr);return Ue.bytes=a-n,r}i(Ue,"read");var gr=Math.pow(2,7),Er=Math.pow(2,14),Ar=Math.pow(2,21),Ur=Math.pow(2,28),vr=Math.pow(2,35),Sr=Math.pow(2,42),Cr=Math.pow(2,49),Ir=Math.pow(2,56),Kr=Math.pow(2,63),Rr=i(function(e){return e<gr?1:e<Er?2:e<Ar?3:e<Ur?4:e<vr?5:e<Sr?6:e<Cr?7:e<Ir?8:e<Kr?9:10},"length"),_r={encode:hr,decode:wr,encodingLength:Rr},Dr=_r,Y=Dr;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 Qe(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(Qe,"decode");function We(e,t){if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&ze(e.bytes,r.bytes)}}i(We,"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 Ze=0,Lr="identity",et=K;function Pr(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(Ze,et(e))}i(Pr,"digest");var Nr={code:Ze,name:Lr,encode:et,digest:Pr};var Ie={};l(Ie,{sha256:()=>kr,sha512:()=>Mr});var Tr=20;function Ce({name:e,code:t,encode:r,minDigestLength:n,maxDigestLength:o}){return new Se(e,t,r,n,o)}i(Ce,"from");var Se=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??Tr,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?tt(n,this.code,r?.truncate):n.then(o=>tt(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function tt(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(tt,"createDigest");function nt(e){return async t=>new Uint8Array(await crypto.subtle.digest(e,t))}i(nt,"sha");var kr=Ce({name:"sha2-256",code:18,encode:nt("SHA-256")}),Mr=Ce({name:"sha2-512",code:19,encode:nt("SHA-512")});function ot(e,t){let{bytes:r,version:n}=e;return n===0?Vr(r,Ke(e),t??S.encoder):Or(r,Ke(e),t??k.encoder)}i(ot,"format");var it=new WeakMap;function Ke(e){let t=it.get(e);if(t==null){let r=new Map;return it.set(e,r),r}return t}i(Ke,"baseCache");var re=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!==zr)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&&We(t.multihash,n.multihash)}toString(t){return ot(this,t)}toJSON(){return{"/":ot(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??at(n,o,a.bytes))}else if(r[Hr]===!0){let{version:n,multihash:o,code:a}=r,s=Qe(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=at(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(),b=r+y,E=b-s;return{version:o,codec:a,multihashCode:c,digestSize:y,multihashSize:E,size:b}}static parse(t,r){let[n,o]=Br(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 Ke(a).set(n,t),a}};function Br(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(Br,"parseCIDtoBytes");function Vr(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(Vr,"toStringV0");function Or(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(Or,"toStringV1");var q=112,zr=18;function at(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(at,"encodeCID");var Hr=Symbol.for("@ipld/js-cid/CID");var Re={...Ae,...le,...Ee,...de,...he,...be,...we,...xe,...ge,...me},Uo={...Ie,...ve};function ct(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}i(ct,"createCodec");var st=ct("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),_e=ct("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=ee(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),Gr={utf8:st,"utf-8":st,hex:Re.base16,latin1:_e,ascii:_e,binary:_e,...Re},ne=Gr;function X(e,t="utf8"){let r=ne[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}i(X,"fromString");function oe(e,t="utf8"){let r=ne[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}i(oe,"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 ft=32,Yr=1,Fr=2,De=32,pt=32,j=12,N=32,Le=16,ut=0,Pe=new TextEncoder().encode("HPKE-v1"),z=2,Ne=m(new TextEncoder().encode("KEM"),L(ft,2)),H=m(new TextEncoder().encode("HPKE"),L(ft,2),L(Yr,2),L(Fr,2)),ie=new TextEncoder().encode("simple-hpke/keyId/v1"),yt=12;var d=globalThis.crypto.subtle;async function lt(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(lt,"aeadSeal");async function mt(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(mt,"aeadOpen");async function Me(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 se(e,r,n),c=globalThis.crypto.getRandomValues(new Uint8Array(j)),y=new Uint8Array(await d.encrypt({name:"AES-GCM",iv:c},s,o));return m(L(a.length,z),a,c,y)}i(Me,"encryptBytes");async function bt(e,t,r,n){let o=await Me(e,t,r,n);return oe(o,n?.encoding??"base64url")}i(bt,"encryptToString");async function wt(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(wt,"hmac");async function $r(e,t){let r=e.length===0?new Uint8Array(De):e;return wt(r,t)}i($r,"extract");async function qr(e,t,r){let n=new Uint8Array(r),o=new Uint8Array(0),a=0,s=1;for(;a<r;){o=await wt(e,m(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(qr,"expand");async function J(e,t,r,n){let o=m(Pe,e,new TextEncoder().encode(r),n);return $r(t,o)}i(J,"labeledExtract");async function ae(e,t,r,n,o){let a=m(L(o,2),Pe,e,new TextEncoder().encode(r),n);return qr(t,a,o)}i(ae,"labeledExpand");async function Te(e){return new Uint8Array(await d.exportKey("raw",e))}i(Te,"exportRawPublic");async function dt(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(dt,"importRawPublic");async function xt(e){if(e instanceof Uint8Array)return dt(e);if(e instanceof CryptoKey)return ht(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 dt(o)}let t=e;if(t.publicKey instanceof CryptoKey)return ht(t.publicKey,"recipient keypair publicKey");throw new f("ERR_INVALID_RECIPIENT_KEY","unrecognized recipient key form")}i(xt,"resolveRecipientPublicKey");function ht(e,t){if(e.type!=="public")throw new f("ERR_INVALID_RECIPIENT_KEY",`${t} must be a public key`);if(ke(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(ht,"assertRecipientPublicKey");function ke(e,t,r){if(e.algorithm.name!=="X25519")throw new f(r,`${t} must be an X25519 key (got ${e.algorithm.name})`)}i(ke,"assertX25519Algorithm");async function gt(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(gt,"dh");async function Et(e,t){let r=await J(Ne,new Uint8Array(0),"eae_prk",e);return ae(Ne,r,"shared_secret",t,De)}i(Et,"extractAndExpand");async function At(e){let t=await d.generateKey({name:"X25519"},!1,["deriveBits"]),r=await gt(t.privateKey,e),n=await Te(t.publicKey),o=await Te(e),a=m(n,o);return{sharedSecret:await Et(r,a),enc:n}}i(At,"encap");async function Ut(e,t){if(t.privateKey.type!=="private")throw new f("ERR_INVALID_KEYPAIR","keypair.privateKey must be a private key");if(ke(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");ke(t.publicKey,"keypair.publicKey","ERR_INVALID_KEYPAIR");let r=await d.importKey("raw",e,{name:"X25519"},!1,[]),n=await gt(t.privateKey,r),o=await Te(t.publicKey),a=m(e,o);return Et(n,a)}i(Ut,"decap");async function Be(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",ie)).slice(0,yt),n=new Uint8Array(await d.encrypt({name:"AES-GCM",iv:r},e,ie)),o=await d.digest("SHA-256",m(ie,n));return oe(new Uint8Array(o),"base64url")}i(Be,"keyId");async function vt(e,t){let r=await Be(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(vt,"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 m(...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(m,"concat");var ce=globalThis.crypto.subtle;async function Xr(e,t){let{wrapped:r,key:n}=await se(e,null,t);return{wrapped:r,key:n}}i(Xr,"create");var jr=Object.assign(nn,{raw:Oe}),Jr=Object.assign(Me,{asString:bt}),Qr=Object.assign(Ve,{asString:Wr,fromString:Zr});async function Ve(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+Le)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),b=await Oe(e,s,r?.info!==void 0?{info:r.info}:void 0),E=await rn(b),C;try{C=await ce.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(Ve,"decryptBytes");async function Wr(e,t,r){let n=await Ve(e,t,r);return new TextDecoder().decode(n)}i(Wr,"decryptToString");async function Zr(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 Ve(e,n,r?.info!==void 0?{info:r.info}:void 0);return r?.buffer?o:new TextDecoder().decode(o)}i(Zr,"decryptFromString");function en(e){if(e!==128&&e!==256)throw new f("ERR_INVALID_KEYSIZE",`invalid keysize: ${e} (expected 128 or 256)`)}i(en,"validateKeysize");function St(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(St,"validateRawKeyBytes");function Ct(e){return e==null?new Uint8Array(0):typeof e=="string"?new TextEncoder().encode(e):e}i(Ct,"normalizeInfo");async function tn(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 ce.exportKey("raw",e))}i(tn,"exportAesKeyBytes");async function It(e,t){return ce.importKey("raw",e,{name:"AES-GCM"},t,["encrypt","decrypt"])}i(It,"importAesKey");async function rn(e){return ce.importKey("raw",e,{name:"AES-GCM"},!1,["decrypt"])}i(rn,"importAesKeyDecryptOnly");async function Kt(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=m(new Uint8Array([ut]),n,o),s=await J(H,e,"secret",r),c=await ae(H,s,"key",a,pt),y=await ae(H,s,"base_nonce",a,j);return{key:c,baseNonce:y}}i(Kt,"keySchedule");async function Oe(e,t,r){if(t.byteLength<N+Le)throw new f("ERR_MALFORMED_ENVELOPE","malformed envelope: too short");let n=Ct(r?.info),o=t.slice(0,N),a=t.slice(N),s=await Ut(o,e),{key:c,baseNonce:y}=await Kt(s,n);return mt(c,y,a)}i(Oe,"openRawBytes");async function nn(e,t,r){let n=await Oe(e,t,r);return It(n,r?.extractable??!1)}i(nn,"openBytes");async function se(e,t,r){let n=Ct(r?.info),o;if(t instanceof Uint8Array)St(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 tn(t),St(o)}else{let Q=r?.size??256;en(Q),o=globalThis.crypto.getRandomValues(new Uint8Array(Q/8))}let a=await xt(e),{sharedSecret:s,enc:c}=await At(a),{key:y,baseNonce:b}=await Kt(s,n),E=await lt(y,b,o),C=m(c,E);if(t instanceof CryptoKey)return{wrapped:C,key:t};let R=await It(o,r?.extractable??!1);return{wrapped:C,key:R}}i(se,"encryptKey");
|
|
2
2
|
//# sourceMappingURL=index.min.cjs.map
|