ipfs-unixfs-importer 15.0.3 → 15.1.1

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 CHANGED
@@ -52,20 +52,21 @@ And write the importing logic:
52
52
  ```js
53
53
  import { importer } from 'ipfs-unixfs-importer'
54
54
  import { MemoryBlockstore } from 'blockstore-core/memory'
55
+ import * as fs from 'node:fs'
55
56
 
56
57
  // Where the blocks will be stored
57
58
  const blockstore = new MemoryBlockstore()
58
59
 
59
- // Import path /tmp/foo/bar
60
+ // Import path /tmp/foo/
60
61
  const source = [{
61
62
  path: '/tmp/foo/bar',
62
- content: fs.createReadStream(file)
63
+ content: fs.createReadStream('/tmp/foo/bar')
63
64
  }, {
64
65
  path: '/tmp/foo/quxx',
65
- content: fs.createReadStream(file2)
66
+ content: fs.createReadStream('/tmp/foo/quux')
66
67
  }]
67
68
 
68
- for await (const entry of importer(source, blockstore, options)) {
69
+ for await (const entry of importer(source, blockstore)) {
69
70
  console.info(entry)
70
71
  }
71
72
  ```
package/dist/index.min.js CHANGED
@@ -1,3 +1,3 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.IpfsUnixfsImporter = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var IpfsUnixfsImporter=(()=>{var oi=Object.create;var Ot=Object.defineProperty;var si=Object.getOwnPropertyDescriptor;var ai=Object.getOwnPropertyNames;var ci=Object.getPrototypeOf,fi=Object.prototype.hasOwnProperty;var z=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),C=(r,t)=>{for(var e in t)Ot(r,e,{get:t[e],enumerable:!0})},ir=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ai(t))!fi.call(r,i)&&i!==e&&Ot(r,i,{get:()=>t[i],enumerable:!(n=si(t,i))||n.enumerable});return r};var O=(r,t,e)=>(e=r!=null?oi(ci(r)):{},ir(t||!r||!r.__esModule?Ot(e,"default",{value:r,enumerable:!0}):e,r)),ui=r=>ir(Ot({},"__esModule",{value:!0}),r);var xt=z((Ds,sr)=>{"use strict";function or(r,t){for(let e in t)Object.defineProperty(r,e,{value:t[e],enumerable:!0,configurable:!0});return r}function hi(r,t,e){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");e||(e={}),typeof t=="object"&&(e=t,t=""),t&&(e.code=t);try{return or(r,e)}catch{e.message=r.message,e.stack=r.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(r)),or(new i,e)}}sr.exports=hi});var cr=z((Ls,ar)=>{"use strict";ar.exports=li;function li(r,t){for(var e=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)e[n++]=arguments[i++];return new Promise(function(f,c){e[n]=function(u){if(o)if(o=!1,u)c(u);else{for(var m=new Array(arguments.length-1),D=0;D<m.length;)m[D++]=arguments[D];f.apply(null,m)}};try{r.apply(t||null,e)}catch(h){o&&(o=!1,c(h))}})}});var lr=z(hr=>{"use strict";var Rt=hr;Rt.length=function(t){var e=t.length;if(!e)return 0;for(var n=0;--e%4>1&&t.charAt(e)==="=";)++n;return Math.ceil(t.length*3)/4-n};var ut=new Array(64),ur=new Array(123);for(R=0;R<64;)ur[ut[R]=R<26?R+65:R<52?R+71:R<62?R-4:R-59|43]=R++;var R;Rt.encode=function(t,e,n){for(var i=null,o=[],s=0,f=0,c;e<n;){var h=t[e++];switch(f){case 0:o[s++]=ut[h>>2],c=(h&3)<<4,f=1;break;case 1:o[s++]=ut[c|h>>4],c=(h&15)<<2,f=2;break;case 2:o[s++]=ut[c|h>>6],o[s++]=ut[h&63],f=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return f&&(o[s++]=ut[c],o[s++]=61,f===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var fr="invalid encoding";Rt.decode=function(t,e,n){for(var i=n,o=0,s,f=0;f<t.length;){var c=t.charCodeAt(f++);if(c===61&&o>1)break;if((c=ur[c])===void 0)throw Error(fr);switch(o){case 0:s=c,o=1;break;case 1:e[n++]=s<<2|(c&48)>>4,s=c,o=2;break;case 2:e[n++]=(s&15)<<4|(c&60)>>2,s=c,o=3;break;case 3:e[n++]=(s&3)<<6|c,o=0;break}}if(o===1)throw Error(fr);return n-i};Rt.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var pr=z((Ts,dr)=>{"use strict";dr.exports=Vt;function Vt(){this._listeners={}}Vt.prototype.on=function(t,e,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:n||this}),this};Vt.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===e?n.splice(i,1):++i;return this};Vt.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<e.length;)e[i].fn.apply(e[i++].ctx,n)}return this}});var _r=z((Ns,xr)=>{"use strict";xr.exports=mr(mr);function mr(r){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),n=e[3]===128;function i(c,h,u){t[0]=c,h[u]=e[0],h[u+1]=e[1],h[u+2]=e[2],h[u+3]=e[3]}function o(c,h,u){t[0]=c,h[u]=e[3],h[u+1]=e[2],h[u+2]=e[1],h[u+3]=e[0]}r.writeFloatLE=n?i:o,r.writeFloatBE=n?o:i;function s(c,h){return e[0]=c[h],e[1]=c[h+1],e[2]=c[h+2],e[3]=c[h+3],t[0]}function f(c,h){return e[3]=c[h],e[2]=c[h+1],e[1]=c[h+2],e[0]=c[h+3],t[0]}r.readFloatLE=n?s:f,r.readFloatBE=n?f:s}():function(){function t(n,i,o,s){var f=i<0?1:0;if(f&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((f<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((f<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var c=Math.floor(Math.log(i)/Math.LN2),h=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((f<<31|c+127<<23|h)>>>0,o,s)}}r.writeFloatLE=t.bind(null,yr),r.writeFloatBE=t.bind(null,gr);function e(n,i,o){var s=n(i,o),f=(s>>31)*2+1,c=s>>>23&255,h=s&8388607;return c===255?h?NaN:f*(1/0):c===0?f*1401298464324817e-60*h:f*Math.pow(2,c-150)*(h+8388608)}r.readFloatLE=e.bind(null,wr),r.readFloatBE=e.bind(null,br)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),n=e[7]===128;function i(c,h,u){t[0]=c,h[u]=e[0],h[u+1]=e[1],h[u+2]=e[2],h[u+3]=e[3],h[u+4]=e[4],h[u+5]=e[5],h[u+6]=e[6],h[u+7]=e[7]}function o(c,h,u){t[0]=c,h[u]=e[7],h[u+1]=e[6],h[u+2]=e[5],h[u+3]=e[4],h[u+4]=e[3],h[u+5]=e[2],h[u+6]=e[1],h[u+7]=e[0]}r.writeDoubleLE=n?i:o,r.writeDoubleBE=n?o:i;function s(c,h){return e[0]=c[h],e[1]=c[h+1],e[2]=c[h+2],e[3]=c[h+3],e[4]=c[h+4],e[5]=c[h+5],e[6]=c[h+6],e[7]=c[h+7],t[0]}function f(c,h){return e[7]=c[h],e[6]=c[h+1],e[5]=c[h+2],e[4]=c[h+3],e[3]=c[h+4],e[2]=c[h+5],e[1]=c[h+6],e[0]=c[h+7],t[0]}r.readDoubleLE=n?s:f,r.readDoubleBE=n?f:s}():function(){function t(n,i,o,s,f,c){var h=s<0?1:0;if(h&&(s=-s),s===0)n(0,f,c+i),n(1/s>0?0:2147483648,f,c+o);else if(isNaN(s))n(0,f,c+i),n(2146959360,f,c+o);else if(s>17976931348623157e292)n(0,f,c+i),n((h<<31|2146435072)>>>0,f,c+o);else{var u;if(s<22250738585072014e-324)u=s/5e-324,n(u>>>0,f,c+i),n((h<<31|u/4294967296)>>>0,f,c+o);else{var m=Math.floor(Math.log(s)/Math.LN2);m===1024&&(m=1023),u=s*Math.pow(2,-m),n(u*4503599627370496>>>0,f,c+i),n((h<<31|m+1023<<20|u*1048576&1048575)>>>0,f,c+o)}}}r.writeDoubleLE=t.bind(null,yr,0,4),r.writeDoubleBE=t.bind(null,gr,4,0);function e(n,i,o,s,f){var c=n(s,f+i),h=n(s,f+o),u=(h>>31)*2+1,m=h>>>20&2047,D=4294967296*(h&1048575)+c;return m===2047?D?NaN:u*(1/0):m===0?u*5e-324*D:u*Math.pow(2,m-1075)*(D+4503599627370496)}r.readDoubleLE=e.bind(null,wr,0,4),r.readDoubleBE=e.bind(null,br,4,0)}(),r}function yr(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function gr(r,t,e){t[e]=r>>>24,t[e+1]=r>>>16&255,t[e+2]=r>>>8&255,t[e+3]=r&255}function wr(r,t){return(r[t]|r[t+1]<<8|r[t+2]<<16|r[t+3]<<24)>>>0}function br(r,t){return(r[t]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3])>>>0}});var vr=z((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(r){}return null}});var Ar=z(Br=>{"use strict";var ie=Br;ie.length=function(t){for(var e=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?e+=1:n<2048?e+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,e+=4):e+=3;return e};ie.read=function(t,e,n){var i=n-e;if(i<1)return"";for(var o=null,s=[],f=0,c;e<n;)c=t[e++],c<128?s[f++]=c:c>191&&c<224?s[f++]=(c&31)<<6|t[e++]&63:c>239&&c<365?(c=((c&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[f++]=55296+(c>>10),s[f++]=56320+(c&1023)):s[f++]=(c&15)<<12|(t[e++]&63)<<6|t[e++]&63,f>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),f=0);return o?(f&&o.push(String.fromCharCode.apply(String,s.slice(0,f))),o.join("")):String.fromCharCode.apply(String,s.slice(0,f))};ie.write=function(t,e,n){for(var i=n,o,s,f=0;f<t.length;++f)o=t.charCodeAt(f),o<128?e[n++]=o:o<2048?(e[n++]=o>>6|192,e[n++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(f+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++f,e[n++]=o>>18|240,e[n++]=o>>12&63|128,e[n++]=o>>6&63|128,e[n++]=o&63|128):(e[n++]=o>>12|224,e[n++]=o>>6&63|128,e[n++]=o&63|128);return n-i}});var Sr=z((Cs,kr)=>{"use strict";kr.exports=di;function di(r,t,e){var n=e||8192,i=n>>>1,o=null,s=n;return function(c){if(c<1||c>i)return r(c);s+c>n&&(o=r(n),s=0);var h=t.call(o,s,s+=c);return s&7&&(s=(s|7)+1),h}}});var Lr=z((Ps,Dr)=>{"use strict";Dr.exports=N;var _t=rt();function N(r,t){this.lo=r>>>0,this.hi=t>>>0}var et=N.zero=new N(0,0);et.toNumber=function(){return 0};et.zzEncode=et.zzDecode=function(){return this};et.length=function(){return 1};var pi=N.zeroHash="\0\0\0\0\0\0\0\0";N.fromNumber=function(t){if(t===0)return et;var e=t<0;e&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new N(n,i)};N.from=function(t){if(typeof t=="number")return N.fromNumber(t);if(_t.isString(t))if(_t.Long)t=_t.Long.fromString(t);else return N.fromNumber(parseInt(t,10));return t.low||t.high?new N(t.low>>>0,t.high>>>0):et};N.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=~this.lo+1>>>0,n=~this.hi>>>0;return e||(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296};N.prototype.toLong=function(t){return _t.Long?new _t.Long(this.lo|0,this.hi|0,!!t):{low:this.lo|0,high:this.hi|0,unsigned:!!t}};var Z=String.prototype.charCodeAt;N.fromHash=function(t){return t===pi?et:new N((Z.call(t,0)|Z.call(t,1)<<8|Z.call(t,2)<<16|Z.call(t,3)<<24)>>>0,(Z.call(t,4)|Z.call(t,5)<<8|Z.call(t,6)<<16|Z.call(t,7)<<24)>>>0)};N.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};N.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};N.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};N.prototype.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}});var rt=z(oe=>{"use strict";var x=oe;x.asPromise=cr();x.base64=lr();x.EventEmitter=pr();x.float=_r();x.inquire=vr();x.utf8=Ar();x.pool=Sr();x.LongBits=Lr();x.isNode=!!(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);x.global=x.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||oe;x.emptyArray=Object.freeze?Object.freeze([]):[];x.emptyObject=Object.freeze?Object.freeze({}):{};x.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};x.isString=function(t){return typeof t=="string"||t instanceof String};x.isObject=function(t){return t&&typeof t=="object"};x.isset=x.isSet=function(t,e){var n=t[e];return n!=null&&t.hasOwnProperty(e)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};x.Buffer=function(){try{var r=x.inquire("buffer").Buffer;return r.prototype.utf8Write?r:null}catch{return null}}();x._Buffer_from=null;x._Buffer_allocUnsafe=null;x.newBuffer=function(t){return typeof t=="number"?x.Buffer?x._Buffer_allocUnsafe(t):new x.Array(t):x.Buffer?x._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};x.Array=typeof Uint8Array<"u"?Uint8Array:Array;x.Long=x.global.dcodeIO&&x.global.dcodeIO.Long||x.global.Long||x.inquire("long");x.key2Re=/^true|false|0|1$/;x.key32Re=/^-?(?:0|[1-9][0-9]*)$/;x.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;x.longToHash=function(t){return t?x.LongBits.from(t).toHash():x.LongBits.zeroHash};x.longFromHash=function(t,e){var n=x.LongBits.fromHash(t);return x.Long?x.Long.fromBits(n.lo,n.hi,e):n.toNumber(!!e)};function Er(r,t,e){for(var n=Object.keys(t),i=0;i<n.length;++i)(r[n[i]]===void 0||!e)&&(r[n[i]]=t[n[i]]);return r}x.merge=Er;x.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function Tr(r){function t(e,n){if(!(this instanceof t))return new t(e,n);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&Er(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return r},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}x.newError=Tr;x.ProtocolError=Tr("ProtocolError");x.oneOfGetter=function(t){for(var e={},n=0;n<t.length;++n)e[t[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(e[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};x.oneOfSetter=function(t){return function(e){for(var n=0;n<t.length;++n)t[n]!==e&&delete this[t[n]]}};x.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};x._configure=function(){var r=x.Buffer;if(!r){x._Buffer_from=x._Buffer_allocUnsafe=null;return}x._Buffer_from=r.from!==Uint8Array.from&&r.from||function(e,n){return new r(e,n)},x._Buffer_allocUnsafe=r.allocUnsafe||function(e){return new r(e)}}});var ce=z((Fs,Ir)=>{"use strict";Ir.exports=T;var j=rt(),ae,Cr=j.LongBits,mi=j.utf8;function V(r,t){return RangeError("index out of range: "+r.pos+" + "+(t||1)+" > "+r.len)}function T(r){this.buf=r,this.pos=0,this.len=r.length}var Nr=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new T(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new T(t);throw Error("illegal buffer")},Pr=function(){return j.Buffer?function(e){return(T.create=function(i){return j.Buffer.isBuffer(i)?new ae(i):Nr(i)})(e)}:Nr};T.create=Pr();T.prototype._slice=j.Array.prototype.subarray||j.Array.prototype.slice;T.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,V(this,10);return t}}();T.prototype.int32=function(){return this.uint32()|0};T.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function se(){var r=new Cr(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r;if(r.lo=(r.lo|(this.buf[this.pos]&127)<<28)>>>0,r.hi=(r.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return r;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw V(this);if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r}return r.lo=(r.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,r}if(this.len-this.pos>4){for(;t<5;++t)if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}else for(;t<5;++t){if(this.pos>=this.len)throw V(this);if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}throw Error("invalid varint encoding")}T.prototype.bool=function(){return this.uint32()!==0};function qt(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}T.prototype.fixed32=function(){if(this.pos+4>this.len)throw V(this,4);return qt(this.buf,this.pos+=4)};T.prototype.sfixed32=function(){if(this.pos+4>this.len)throw V(this,4);return qt(this.buf,this.pos+=4)|0};function zr(){if(this.pos+8>this.len)throw V(this,8);return new Cr(qt(this.buf,this.pos+=4),qt(this.buf,this.pos+=4))}T.prototype.float=function(){if(this.pos+4>this.len)throw V(this,4);var t=j.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};T.prototype.double=function(){if(this.pos+8>this.len)throw V(this,4);var t=j.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};T.prototype.bytes=function(){var t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw V(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,n):e===n?new this.buf.constructor(0):this._slice.call(this.buf,e,n)};T.prototype.string=function(){var t=this.bytes();return mi.read(t,0,t.length)};T.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw V(this,t);this.pos+=t}else do if(this.pos>=this.len)throw V(this);while(this.buf[this.pos++]&128);return this};T.prototype.skipType=function(r){switch(r){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(r=this.uint32()&7)!==4;)this.skipType(r);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+r+" at offset "+this.pos)}return this};T._configure=function(r){ae=r,T.create=Pr(),ae._configure();var t=j.Long?"toLong":"toNumber";j.merge(T.prototype,{int64:function(){return se.call(this)[t](!1)},uint64:function(){return se.call(this)[t](!0)},sint64:function(){return se.call(this).zzDecode()[t](!1)},fixed64:function(){return zr.call(this)[t](!0)},sfixed64:function(){return zr.call(this)[t](!1)}})}});var Hr=z((Us,Mr)=>{"use strict";Mr.exports=nt;var Ur=ce();(nt.prototype=Object.create(Ur.prototype)).constructor=nt;var Fr=rt();function nt(r){Ur.call(this,r)}nt._configure=function(){Fr.Buffer&&(nt.prototype._slice=Fr.Buffer.prototype.slice)};nt.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};nt._configure()});var me=z((Ms,qr)=>{"use strict";qr.exports=A;var M=rt(),fe,Gt=M.LongBits,Or=M.base64,Rr=M.utf8;function vt(r,t,e){this.fn=r,this.len=t,this.next=void 0,this.val=e}function he(){}function yi(r){this.head=r.head,this.tail=r.tail,this.len=r.len,this.next=r.states}function A(){this.len=0,this.head=new vt(he,0,0),this.tail=this.head,this.states=null}var Vr=function(){return M.Buffer?function(){return(A.create=function(){return new fe})()}:function(){return new A}};A.create=Vr();A.alloc=function(t){return new M.Array(t)};M.Array!==Array&&(A.alloc=M.pool(A.alloc,M.Array.prototype.subarray));A.prototype._push=function(t,e,n){return this.tail=this.tail.next=new vt(t,e,n),this.len+=e,this};function le(r,t,e){t[e]=r&255}function gi(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}function de(r,t){this.len=r,this.next=void 0,this.val=t}de.prototype=Object.create(vt.prototype);de.prototype.fn=gi;A.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new de((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};A.prototype.int32=function(t){return t<0?this._push(pe,10,Gt.fromNumber(t)):this.uint32(t)};A.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function pe(r,t,e){for(;r.hi;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}A.prototype.uint64=function(t){var e=Gt.from(t);return this._push(pe,e.length(),e)};A.prototype.int64=A.prototype.uint64;A.prototype.sint64=function(t){var e=Gt.from(t).zzEncode();return this._push(pe,e.length(),e)};A.prototype.bool=function(t){return this._push(le,1,t?1:0)};function ue(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}A.prototype.fixed32=function(t){return this._push(ue,4,t>>>0)};A.prototype.sfixed32=A.prototype.fixed32;A.prototype.fixed64=function(t){var e=Gt.from(t);return this._push(ue,4,e.lo)._push(ue,4,e.hi)};A.prototype.sfixed64=A.prototype.fixed64;A.prototype.float=function(t){return this._push(M.float.writeFloatLE,4,t)};A.prototype.double=function(t){return this._push(M.float.writeDoubleLE,8,t)};var wi=M.Array.prototype.set?function(t,e,n){e.set(t,n)}:function(t,e,n){for(var i=0;i<t.length;++i)e[n+i]=t[i]};A.prototype.bytes=function(t){var e=t.length>>>0;if(!e)return this._push(le,1,0);if(M.isString(t)){var n=A.alloc(e=Or.length(t));Or.decode(t,n,0),t=n}return this.uint32(e)._push(wi,e,t)};A.prototype.string=function(t){var e=Rr.length(t);return e?this.uint32(e)._push(Rr.write,e,t):this._push(le,1,0)};A.prototype.fork=function(){return this.states=new yi(this),this.head=this.tail=new vt(he,0,0),this.len=0,this};A.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new vt(he,0,0),this.len=0),this};A.prototype.ldelim=function(){var t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=e,this.len+=n),this};A.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e};A._configure=function(r){fe=r,A.create=Vr(),fe._configure()}});var $r=z((Hs,jr)=>{"use strict";jr.exports=$;var Gr=me();($.prototype=Object.create(Gr.prototype)).constructor=$;var Y=rt();function $(){Gr.call(this)}$._configure=function(){$.alloc=Y._Buffer_allocUnsafe,$.writeBytesBuffer=Y.Buffer&&Y.Buffer.prototype instanceof Uint8Array&&Y.Buffer.prototype.set.name==="set"?function(t,e,n){e.set(t,n)}:function(t,e,n){if(t.copy)t.copy(e,n,0,t.length);else for(var i=0;i<t.length;)e[n++]=t[i++]}};$.prototype.bytes=function(t){Y.isString(t)&&(t=Y._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push($.writeBytesBuffer,e,t),this};function bi(r,t,e){r.length<40?Y.utf8.write(r,t,e):t.utf8Write?t.utf8Write(r,e):t.write(r,e)}$.prototype.string=function(t){var e=Y.Buffer.byteLength(t);return this.uint32(e),e&&this._push(bi,e,t),this};$._configure()});var Nn=z((Ya,Tn)=>{"use strict";Tn.exports=class{constructor(){this._bitArrays=[],this._data=[],this._length=0,this._changedLength=!1,this._changedData=!1}set(t,e){let n=this._internalPositionFor(t,!1);if(e===void 0)n!==-1&&(this._unsetInternalPos(n),this._unsetBit(t),this._changedLength=!0,this._changedData=!0);else{let i=!1;n===-1?(n=this._data.length,this._setBit(t),this._changedData=!0):i=!0,this._setInternalPos(n,t,e,i),this._changedLength=!0}}unset(t){this.set(t,void 0)}get(t){this._sortData();let e=this._internalPositionFor(t,!0);if(e!==-1)return this._data[e][1]}push(t){return this.set(this.length,t),this.length}get length(){if(this._sortData(),this._changedLength){let t=this._data[this._data.length-1];this._length=t?t[0]+1:0,this._changedLength=!1}return this._length}forEach(t){let e=0;for(;e<this.length;)t(this.get(e),e,this),e++}map(t){let e=0,n=new Array(this.length);for(;e<this.length;)n[e]=t(this.get(e),e,this),e++;return n}reduce(t,e){let n=0,i=e;for(;n<this.length;){let o=this.get(n);i=t(i,o,n),n++}return i}find(t){let e=0,n,i;for(;e<this.length&&!n;)i=this.get(e),n=t(i),e++;return n?i:void 0}_internalPositionFor(t,e){let n=this._bytePosFor(t,e);if(n>=this._bitArrays.length)return-1;let i=this._bitArrays[n],o=t-n*7;if(!((i&1<<o)>0))return-1;let f=this._bitArrays.slice(0,n).reduce(Po,0),c=~(4294967295<<o+1),h=En(i&c);return f+h-1}_bytePosFor(t,e){let n=Math.floor(t/7),i=n+1;for(;!e&&this._bitArrays.length<i;)this._bitArrays.push(0);return n}_setBit(t){let e=this._bytePosFor(t,!1);this._bitArrays[e]|=1<<t-e*7}_unsetBit(t){let e=this._bytePosFor(t,!1);this._bitArrays[e]&=~(1<<t-e*7)}_setInternalPos(t,e,n,i){let o=this._data,s=[e,n];if(i)this._sortData(),o[t]=s;else{if(o.length)if(o[o.length-1][0]>=e)o.push(s);else if(o[0][0]<=e)o.unshift(s);else{let f=Math.round(o.length/2);this._data=o.slice(0,f).concat(s).concat(o.slice(f))}else this._data.push(s);this._changedData=!0,this._changedLength=!0}}_unsetInternalPos(t){this._data.splice(t,1)}_sortData(){this._changedData&&this._data.sort(Io),this._changedData=!1}bitField(){let t=[],e=8,n=0,i=0,o,s=this._bitArrays.slice();for(;s.length||n;){n===0&&(o=s.shift(),n=7);let c=Math.min(n,e),h=~(255<<c),u=o&h;i|=u<<8-e,o=o>>>c,n-=c,e-=c,(!e||!n&&!s.length)&&(t.push(i),i=0,e=8)}for(var f=t.length-1;f>0&&t[f]===0;f--)t.pop();return t}compactArray(){return this._sortData(),this._data.map(Fo)}};function Po(r,t){return r+En(t)}function En(r){let t=r;return t=t-(t>>1&1431655765),t=(t&858993459)+(t>>2&858993459),(t+(t>>4)&252645135)*16843009>>24}function Io(r,t){return r[0]-t[0]}function Fo(r){return r[1]}});var Vn=z((Ft,Yt)=>{(function(r,t){"use strict";var e={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(a){if(!Array.isArray(a)&&!ArrayBuffer.isView(a))return!1;for(var l=0;l<a.length;l++)if(!Number.isInteger(a[l])||a[l]<0||a[l]>255)return!1;return!0}function i(a,l){return(a&65535)*l+(((a>>>16)*l&65535)<<16)}function o(a,l){return a<<l|a>>>32-l}function s(a){return a^=a>>>16,a=i(a,2246822507),a^=a>>>13,a=i(a,3266489909),a^=a>>>16,a}function f(a,l){a=[a[0]>>>16,a[0]&65535,a[1]>>>16,a[1]&65535],l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535];var p=[0,0,0,0];return p[3]+=a[3]+l[3],p[2]+=p[3]>>>16,p[3]&=65535,p[2]+=a[2]+l[2],p[1]+=p[2]>>>16,p[2]&=65535,p[1]+=a[1]+l[1],p[0]+=p[1]>>>16,p[1]&=65535,p[0]+=a[0]+l[0],p[0]&=65535,[p[0]<<16|p[1],p[2]<<16|p[3]]}function c(a,l){a=[a[0]>>>16,a[0]&65535,a[1]>>>16,a[1]&65535],l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535];var p=[0,0,0,0];return p[3]+=a[3]*l[3],p[2]+=p[3]>>>16,p[3]&=65535,p[2]+=a[2]*l[3],p[1]+=p[2]>>>16,p[2]&=65535,p[2]+=a[3]*l[2],p[1]+=p[2]>>>16,p[2]&=65535,p[1]+=a[1]*l[3],p[0]+=p[1]>>>16,p[1]&=65535,p[1]+=a[2]*l[2],p[0]+=p[1]>>>16,p[1]&=65535,p[1]+=a[3]*l[1],p[0]+=p[1]>>>16,p[1]&=65535,p[0]+=a[0]*l[3]+a[1]*l[2]+a[2]*l[1]+a[3]*l[0],p[0]&=65535,[p[0]<<16|p[1],p[2]<<16|p[3]]}function h(a,l){return l%=64,l===32?[a[1],a[0]]:l<32?[a[0]<<l|a[1]>>>32-l,a[1]<<l|a[0]>>>32-l]:(l-=32,[a[1]<<l|a[0]>>>32-l,a[0]<<l|a[1]>>>32-l])}function u(a,l){return l%=64,l===0?a:l<32?[a[0]<<l|a[1]>>>32-l,a[1]<<l]:[a[1]<<l-32,0]}function m(a,l){return[a[0]^l[0],a[1]^l[1]]}function D(a){return a=m(a,[0,a[0]>>>1]),a=c(a,[4283543511,3981806797]),a=m(a,[0,a[0]>>>1]),a=c(a,[3301882366,444984403]),a=m(a,[0,a[0]>>>1]),a}e.x86.hash32=function(a,l){if(e.inputValidation&&!n(a))return t;l=l||0;for(var p=a.length%4,S=a.length-p,d=l,y=0,w=3432918353,b=461845907,_=0;_<S;_=_+4)y=a[_]|a[_+1]<<8|a[_+2]<<16|a[_+3]<<24,y=i(y,w),y=o(y,15),y=i(y,b),d^=y,d=o(d,13),d=i(d,5)+3864292196;switch(y=0,p){case 3:y^=a[_+2]<<16;case 2:y^=a[_+1]<<8;case 1:y^=a[_],y=i(y,w),y=o(y,15),y=i(y,b),d^=y}return d^=a.length,d=s(d),d>>>0},e.x86.hash128=function(a,l){if(e.inputValidation&&!n(a))return t;l=l||0;for(var p=a.length%16,S=a.length-p,d=l,y=l,w=l,b=l,_=0,v=0,g=0,L=0,X=597399067,Ut=2869860233,Mt=951274213,Ht=2716044179,B=0;B<S;B=B+16)_=a[B]|a[B+1]<<8|a[B+2]<<16|a[B+3]<<24,v=a[B+4]|a[B+5]<<8|a[B+6]<<16|a[B+7]<<24,g=a[B+8]|a[B+9]<<8|a[B+10]<<16|a[B+11]<<24,L=a[B+12]|a[B+13]<<8|a[B+14]<<16|a[B+15]<<24,_=i(_,X),_=o(_,15),_=i(_,Ut),d^=_,d=o(d,19),d+=y,d=i(d,5)+1444728091,v=i(v,Ut),v=o(v,16),v=i(v,Mt),y^=v,y=o(y,17),y+=w,y=i(y,5)+197830471,g=i(g,Mt),g=o(g,17),g=i(g,Ht),w^=g,w=o(w,15),w+=b,w=i(w,5)+2530024501,L=i(L,Ht),L=o(L,18),L=i(L,X),b^=L,b=o(b,13),b+=d,b=i(b,5)+850148119;switch(_=0,v=0,g=0,L=0,p){case 15:L^=a[B+14]<<16;case 14:L^=a[B+13]<<8;case 13:L^=a[B+12],L=i(L,Ht),L=o(L,18),L=i(L,X),b^=L;case 12:g^=a[B+11]<<24;case 11:g^=a[B+10]<<16;case 10:g^=a[B+9]<<8;case 9:g^=a[B+8],g=i(g,Mt),g=o(g,17),g=i(g,Ht),w^=g;case 8:v^=a[B+7]<<24;case 7:v^=a[B+6]<<16;case 6:v^=a[B+5]<<8;case 5:v^=a[B+4],v=i(v,Ut),v=o(v,16),v=i(v,Mt),y^=v;case 4:_^=a[B+3]<<24;case 3:_^=a[B+2]<<16;case 2:_^=a[B+1]<<8;case 1:_^=a[B],_=i(_,X),_=o(_,15),_=i(_,Ut),d^=_}return d^=a.length,y^=a.length,w^=a.length,b^=a.length,d+=y,d+=w,d+=b,y+=d,w+=d,b+=d,d=s(d),y=s(y),w=s(w),b=s(b),d+=y,d+=w,d+=b,y+=d,w+=d,b+=d,("00000000"+(d>>>0).toString(16)).slice(-8)+("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)},e.x64.hash128=function(a,l){if(e.inputValidation&&!n(a))return t;l=l||0;for(var p=a.length%16,S=a.length-p,d=[0,l],y=[0,l],w=[0,0],b=[0,0],_=[2277735313,289559509],v=[1291169091,658871167],g=0;g<S;g=g+16)w=[a[g+4]|a[g+5]<<8|a[g+6]<<16|a[g+7]<<24,a[g]|a[g+1]<<8|a[g+2]<<16|a[g+3]<<24],b=[a[g+12]|a[g+13]<<8|a[g+14]<<16|a[g+15]<<24,a[g+8]|a[g+9]<<8|a[g+10]<<16|a[g+11]<<24],w=c(w,_),w=h(w,31),w=c(w,v),d=m(d,w),d=h(d,27),d=f(d,y),d=f(c(d,[0,5]),[0,1390208809]),b=c(b,v),b=h(b,33),b=c(b,_),y=m(y,b),y=h(y,31),y=f(y,d),y=f(c(y,[0,5]),[0,944331445]);switch(w=[0,0],b=[0,0],p){case 15:b=m(b,u([0,a[g+14]],48));case 14:b=m(b,u([0,a[g+13]],40));case 13:b=m(b,u([0,a[g+12]],32));case 12:b=m(b,u([0,a[g+11]],24));case 11:b=m(b,u([0,a[g+10]],16));case 10:b=m(b,u([0,a[g+9]],8));case 9:b=m(b,[0,a[g+8]]),b=c(b,v),b=h(b,33),b=c(b,_),y=m(y,b);case 8:w=m(w,u([0,a[g+7]],56));case 7:w=m(w,u([0,a[g+6]],48));case 6:w=m(w,u([0,a[g+5]],40));case 5:w=m(w,u([0,a[g+4]],32));case 4:w=m(w,u([0,a[g+3]],24));case 3:w=m(w,u([0,a[g+2]],16));case 2:w=m(w,u([0,a[g+1]],8));case 1:w=m(w,[0,a[g]]),w=c(w,_),w=h(w,31),w=c(w,v),d=m(d,w)}return d=m(d,[0,a.length]),y=m(y,[0,a.length]),d=f(d,y),y=f(y,d),d=D(d),y=D(y),d=f(d,y),y=f(y,d),("00000000"+(d[0]>>>0).toString(16)).slice(-8)+("00000000"+(d[1]>>>0).toString(16)).slice(-8)+("00000000"+(y[0]>>>0).toString(16)).slice(-8)+("00000000"+(y[1]>>>0).toString(16)).slice(-8)},typeof Ft<"u"?(typeof Yt<"u"&&Yt.exports&&(Ft=Yt.exports=e),Ft.murmurHash3=e):typeof define=="function"&&define.amd?define([],function(){return e}):(e._murmurHash3=r.murmurHash3,e.noConflict=function(){return r.murmurHash3=e._murmurHash3,e._murmurHash3=t,e.noConflict=t,e},r.murmurHash3=e)})(Ft)});var Gn=z((Hc,qn)=>{qn.exports=Vn()});var vs={};C(vs,{importByteStream:()=>_s,importBytes:()=>xs,importDirectory:()=>bs,importFile:()=>nr,importer:()=>rr});async function*ft(r,t=1){let e=[];t<1&&(t=1);for await(let n of r)for(e.push(n);e.length>=t;)yield e.slice(0,t),e=e.slice(t);for(;e.length>0;)yield e.slice(0,t),e=e.slice(t)}async function*bt(r,t=1){for await(let e of ft(r,t)){let n=e.map(async i=>await i().then(o=>({ok:!0,value:o}),o=>({ok:!1,err:o})));for(let i=0;i<n.length;i++){let o=await n[i];if(o.ok)yield o.value;else throw o.err}}}var _e=O(xt(),1);var ye=O(ce(),1),Wr=O(Hr(),1),Jr=O(rt(),1),ge=O(me(),1),Kr=O($r(),1);function xi(){Jr.default._configure(),ye.default._configure(Wr.default),ge.default._configure(Kr.default)}xi();var Xr=["uint64","int64","sint64","fixed64","sfixed64"];function _i(r){for(let t of Xr){if(r[t]==null)continue;let e=r[t];r[t]=function(){return BigInt(e.call(this).toString())}}return r}function we(r){return _i(new ye.default(r))}function vi(r){for(let t of Xr){if(r[t]==null)continue;let e=r[t];r[t]=function(n){return e.call(this,n.toString())}}return r}function be(){return vi(ge.default.create())}function Bt(r,t){let e=we(r instanceof Uint8Array?r:r.subarray());return t.decode(e)}function At(r,t){let e=be();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var ht;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(ht||(ht={}));function jt(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function xe(r){function t(i){if(r[i.toString()]==null)throw new Error("Invalid enum value");return r[i]}let e=function(o,s){let f=t(o);s.int32(f)},n=function(o){let s=o.int32();return t(s)};return jt("enum",ht.VARINT,e,n)}function kt(r,t){return jt("message",ht.LENGTH_DELIMITED,r,t)}var q;(function(r){let t;(function(i){i.Raw="Raw",i.Directory="Directory",i.File="File",i.Metadata="Metadata",i.Symlink="Symlink",i.HAMTShard="HAMTShard"})(t=r.DataType||(r.DataType={}));let e;(function(i){i[i.Raw=0]="Raw",i[i.Directory=1]="Directory",i[i.File=2]="File",i[i.Metadata=3]="Metadata",i[i.Symlink=4]="Symlink",i[i.HAMTShard=5]="HAMTShard"})(e||(e={})),function(i){i.codec=()=>xe(e)}(t=r.DataType||(r.DataType={}));let n;r.codec=()=>(n==null&&(n=kt((i,o,s={})=>{if(s.lengthDelimited!==!1&&o.fork(),i.Type!=null&&(o.uint32(8),r.DataType.codec().encode(i.Type,o)),i.Data!=null&&(o.uint32(18),o.bytes(i.Data)),i.filesize!=null&&(o.uint32(24),o.uint64(i.filesize)),i.blocksizes!=null)for(let f of i.blocksizes)o.uint32(32),o.uint64(f);i.hashType!=null&&(o.uint32(40),o.uint64(i.hashType)),i.fanout!=null&&(o.uint32(48),o.uint64(i.fanout)),i.mode!=null&&(o.uint32(56),o.uint32(i.mode)),i.mtime!=null&&(o.uint32(66),$t.codec().encode(i.mtime,o)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={blocksizes:[]},f=o==null?i.len:i.pos+o;for(;i.pos<f;){let c=i.uint32();switch(c>>>3){case 1:s.Type=r.DataType.codec().decode(i);break;case 2:s.Data=i.bytes();break;case 3:s.filesize=i.uint64();break;case 4:s.blocksizes.push(i.uint64());break;case 5:s.hashType=i.uint64();break;case 6:s.fanout=i.uint64();break;case 7:s.mode=i.uint32();break;case 8:s.mtime=$t.codec().decode(i,i.uint32());break;default:i.skipType(c&7);break}}return s})),n),r.encode=i=>At(i,r.codec()),r.decode=i=>Bt(i,r.codec())})(q||(q={}));var $t;(function(r){let t;r.codec=()=>(t==null&&(t=kt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Seconds!=null&&(n.uint32(8),n.int64(e.Seconds)),e.FractionalNanoseconds!=null&&(n.uint32(21),n.fixed32(e.FractionalNanoseconds)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.Seconds=e.int64();break;case 2:i.FractionalNanoseconds=e.fixed32();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>At(e,r.codec()),r.decode=e=>Bt(e,r.codec())})($t||($t={}));var Qr;(function(r){let t;r.codec=()=>(t==null&&(t=kt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.MimeType!=null&&(n.uint32(10),n.string(e.MimeType)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.MimeType=e.string();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>At(e,r.codec()),r.decode=e=>Bt(e,r.codec())})(Qr||(Qr={}));var Zr={Raw:"raw",Directory:"directory",File:"file",Metadata:"metadata",Symlink:"symlink",HAMTShard:"hamt-sharded-directory"},Bi=["directory","hamt-sharded-directory"],Yr=parseInt("0644",8),tn=parseInt("0755",8),P=class{static unmarshal(t){let e=q.decode(t),n=new P({type:Zr[e.Type!=null?e.Type.toString():"File"],data:e.Data,blockSizes:e.blocksizes,mode:e.mode,mtime:e.mtime!=null?{secs:e.mtime.Seconds??0n,nsecs:e.mtime.FractionalNanoseconds}:void 0});return n._originalMode=e.mode??0,n}constructor(t={type:"file"}){let{type:e,data:n,blockSizes:i,hashType:o,fanout:s,mtime:f,mode:c}=t;if(e!=null&&!Object.values(Zr).includes(e))throw(0,_e.default)(new Error("Type: "+e+" is not valid"),"ERR_INVALID_TYPE");this.type=e??"file",this.data=n,this.hashType=o,this.fanout=s,this.blockSizes=i??[],this._originalMode=0,this.mode=c,this.mtime=f}set mode(t){t==null?this._mode=this.isDirectory()?tn:Yr:this._mode=t&4095}get mode(){return this._mode}isDirectory(){return Bi.includes(this.type)}addBlockSize(t){this.blockSizes.push(t)}removeBlockSize(t){this.blockSizes.splice(t,1)}fileSize(){if(this.isDirectory())return 0n;let t=0n;return this.blockSizes.forEach(e=>{t+=e}),this.data!=null&&(t+=BigInt(this.data.length)),t}marshal(){let t;switch(this.type){case"raw":t=q.DataType.Raw;break;case"directory":t=q.DataType.Directory;break;case"file":t=q.DataType.File;break;case"metadata":t=q.DataType.Metadata;break;case"symlink":t=q.DataType.Symlink;break;case"hamt-sharded-directory":t=q.DataType.HAMTShard;break;default:throw(0,_e.default)(new Error(`Type: ${t} is not valid`),"ERR_INVALID_TYPE")}let e=this.data;(this.data==null||this.data.length===0)&&(e=void 0);let n;this.mode!=null&&(n=this._originalMode&4294963200|(this.mode??0),n===Yr&&!this.isDirectory()&&(n=void 0),n===tn&&this.isDirectory()&&(n=void 0));let i;return this.mtime!=null&&(i={Seconds:this.mtime.secs,FractionalNanoseconds:this.mtime.nsecs}),q.encode({Type:t,Data:e,filesize:this.isDirectory()?void 0:this.fileSize(),blocksizes:this.blockSizes,hashType:this.hashType,fanout:this.fanout,mode:n,mtime:i})}};var Ai=nn,en=128,ki=127,Si=~ki,Di=Math.pow(2,31);function nn(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Di;)t[e++]=r&255|en,r/=128;for(;r&Si;)t[e++]=r&255|en,r>>>=7;return t[e]=r|0,nn.bytes=e-n+1,t}var Li=ve,Ei=128,rn=127;function ve(r,n){var e=0,n=n||0,i=0,o=n,s,f=r.length;do{if(o>=f)throw ve.bytes=0,new RangeError("Could not decode varint");s=r[o++],e+=i<28?(s&rn)<<i:(s&rn)*Math.pow(2,i),i+=7}while(s>=Ei);return ve.bytes=o-n,e}var Ti=Math.pow(2,7),Ni=Math.pow(2,14),zi=Math.pow(2,21),Ci=Math.pow(2,28),Pi=Math.pow(2,35),Ii=Math.pow(2,42),Fi=Math.pow(2,49),Ui=Math.pow(2,56),Mi=Math.pow(2,63),Hi=function(r){return r<Ti?1:r<Ni?2:r<zi?3:r<Ci?4:r<Pi?5:r<Ii?6:r<Fi?7:r<Ui?8:r<Mi?9:10},Oi={encode:Ai,decode:Li,encodingLength:Hi},Ri=Oi,St=Ri;var Dt=(r,t=0)=>[St.decode(r,t),St.decode.bytes],lt=(r,t,e=0)=>(St.encode(r,t,e),t),dt=r=>St.encodingLength(r);var pt={};C(pt,{coerce:()=>H,empty:()=>on,equals:()=>Be,fromHex:()=>qi,fromString:()=>Ae,isBinary:()=>Gi,toHex:()=>Vi,toString:()=>ke});var on=new Uint8Array(0),Vi=r=>r.reduce((t,e)=>t+e.toString(16).padStart(2,"0"),""),qi=r=>{let t=r.match(/../g);return t?new Uint8Array(t.map(e=>parseInt(e,16))):on},Be=(r,t)=>{if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0},H=r=>{if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")},Gi=r=>r instanceof ArrayBuffer||ArrayBuffer.isView(r),Ae=r=>new TextEncoder().encode(r),ke=r=>new TextDecoder().decode(r);var it=(r,t)=>{let e=t.byteLength,n=dt(r),i=n+dt(e),o=new Uint8Array(i+e);return lt(r,o,0),lt(e,o,n),o.set(t,i),new mt(r,e,t,o)},sn=r=>{let t=H(r),[e,n]=Dt(t),[i,o]=Dt(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new mt(e,i,s,t)},an=(r,t)=>{if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&Be(r.bytes,e.bytes)}},mt=class{constructor(t,e,n,i){this.code=t,this.size=e,this.digest=n,this.bytes=i}};var Te={};C(Te,{base58btc:()=>W,base58flickr:()=>Xi});function ji(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var i=0;i<r.length;i++){var o=r.charAt(i),s=o.charCodeAt(0);if(e[s]!==255)throw new TypeError(o+" is ambiguous");e[s]=i}var f=r.length,c=r.charAt(0),h=Math.log(f)/Math.log(256),u=Math.log(256)/Math.log(f);function m(l){if(l instanceof Uint8Array||(ArrayBuffer.isView(l)?l=new Uint8Array(l.buffer,l.byteOffset,l.byteLength):Array.isArray(l)&&(l=Uint8Array.from(l))),!(l instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(l.length===0)return"";for(var p=0,S=0,d=0,y=l.length;d!==y&&l[d]===0;)d++,p++;for(var w=(y-d)*u+1>>>0,b=new Uint8Array(w);d!==y;){for(var _=l[d],v=0,g=w-1;(_!==0||v<S)&&g!==-1;g--,v++)_+=256*b[g]>>>0,b[g]=_%f>>>0,_=_/f>>>0;if(_!==0)throw new Error("Non-zero carry");S=v,d++}for(var L=w-S;L!==w&&b[L]===0;)L++;for(var X=c.repeat(p);L<w;++L)X+=r.charAt(b[L]);return X}function D(l){if(typeof l!="string")throw new TypeError("Expected String");if(l.length===0)return new Uint8Array;var p=0;if(l[p]!==" "){for(var S=0,d=0;l[p]===c;)S++,p++;for(var y=(l.length-p)*h+1>>>0,w=new Uint8Array(y);l[p];){var b=e[l.charCodeAt(p)];if(b===255)return;for(var _=0,v=y-1;(b!==0||_<d)&&v!==-1;v--,_++)b+=f*w[v]>>>0,w[v]=b%256>>>0,b=b/256>>>0;if(b!==0)throw new Error("Non-zero carry");d=_,p++}if(l[p]!==" "){for(var g=y-d;g!==y&&w[g]===0;)g++;for(var L=new Uint8Array(S+(y-g)),X=S;g!==y;)L[X++]=w[g++];return L}}}function a(l){var p=D(l);if(p)return p;throw new Error(`Non-${t} character`)}return{encode:m,decodeUnsafe:D,decode:a}}var $i=ji,Wi=$i,cn=Wi;var Se=class{constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},De=class{constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),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 fn(this,t)}},Le=class{constructor(t){this.decoders=t}or(t){return fn(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},fn=(r,t)=>new Le({...r.decoders||{[r.prefix]:r},...t.decoders||{[t.prefix]:t}}),Ee=class{constructor(t,e,n,i){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=i,this.encoder=new Se(t,e,n),this.decoder=new De(t,e,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},yt=({name:r,prefix:t,encode:e,decode:n})=>new Ee(r,t,e,n),tt=({prefix:r,name:t,alphabet:e})=>{let{encode:n,decode:i}=cn(e,t);return yt({prefix:r,name:t,encode:n,decode:o=>H(i(o))})},Ji=(r,t,e,n)=>{let i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),f=0,c=0,h=0;for(let u=0;u<o;++u){let m=i[r[u]];if(m===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<e|m,f+=e,f>=8&&(f-=8,s[h++]=255&c>>f)}if(f>=e||255&c<<8-f)throw new SyntaxError("Unexpected end of data");return s},Ki=(r,t,e)=>{let n=t[t.length-1]==="=",i=(1<<e)-1,o="",s=0,f=0;for(let c=0;c<r.length;++c)for(f=f<<8|r[c],s+=8;s>e;)s-=e,o+=t[i&f>>s];if(s&&(o+=t[i&f<<e-s]),n)for(;o.length*e&7;)o+="=";return o},E=({name:r,prefix:t,bitsPerChar:e,alphabet:n})=>yt({prefix:t,name:r,encode(i){return Ki(i,n,e)},decode(i){return Ji(i,n,e,r)}});var W=tt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Xi=tt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ne={};C(Ne,{base32:()=>gt,base32hex:()=>to,base32hexpad:()=>ro,base32hexpadupper:()=>no,base32hexupper:()=>eo,base32pad:()=>Zi,base32padupper:()=>Yi,base32upper:()=>Qi,base32z:()=>io});var gt=E({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Qi=E({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Zi=E({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Yi=E({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),to=E({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),eo=E({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ro=E({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),no=E({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),io=E({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var un=(r,t)=>{let{bytes:e,version:n}=r;switch(n){case 0:return so(e,ze(r),t||W.encoder);default:return ao(e,ze(r),t||gt.encoder)}};var hn=new WeakMap,ze=r=>{let t=hn.get(r);if(t==null){let e=new Map;return hn.set(r,e),e}return t},k=class{constructor(t,e,n,i){this.code=e,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}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:e}=this;if(t!==Et)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==co)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return k.createV0(e)}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:e}=this.multihash,n=it(t,e);return k.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 k.equals(this,t)}static equals(t,e){let n=e;return n&&t.code===n.code&&t.version===n.version&&an(t.multihash,n.multihash)}toString(t){return un(this,t)}toJSON(){return{"/":un(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof k)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:i,multihash:o,bytes:s}=e;return new k(n,i,o,s||ln(n,i,o.bytes))}else if(e[fo]===!0){let{version:n,multihash:i,code:o}=e,s=sn(i);return k.create(n,o,s)}else return null}static create(t,e,n){if(typeof e!="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(e!==Et)throw new Error(`Version 0 CID must use dag-pb (code: ${Et}) block encoding`);return new k(t,e,n,n.bytes)}case 1:{let i=ln(t,e,n.bytes);return new k(t,e,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return k.create(0,Et,t)}static createV1(t,e){return k.create(1,t,e)}static decode(t){let[e,n]=k.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=k.inspectBytes(t),n=e.size-e.multihashSize,i=H(t.subarray(n,n+e.multihashSize));if(i.byteLength!==e.multihashSize)throw new Error("Incorrect length");let o=i.subarray(e.multihashSize-e.digestSize),s=new mt(e.multihashCode,e.digestSize,o,i);return[e.version===0?k.createV0(s):k.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[m,D]=Dt(t.subarray(e));return e+=D,m},i=n(),o=Et;if(i===18?(i=0,e=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=e,f=n(),c=n(),h=e+c,u=h-s;return{version:i,codec:o,multihashCode:f,digestSize:c,multihashSize:u,size:h}}static parse(t,e){let[n,i]=oo(t,e),o=k.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ze(o).set(n,t),o}},oo=(r,t)=>{switch(r[0]){case"Q":{let e=t||W;return[W.prefix,e.decode(`${W.prefix}${r}`)]}case W.prefix:{let e=t||W;return[W.prefix,e.decode(r)]}case gt.prefix:{let e=t||gt;return[gt.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}},so=(r,t,e)=>{let{prefix:n}=e;if(n!==W.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let i=t.get(n);if(i==null){let o=e.encode(r).slice(1);return t.set(n,o),o}else return i},ao=(r,t,e)=>{let{prefix:n}=e,i=t.get(n);if(i==null){let o=e.encode(r);return t.set(n,o),o}else return i},Et=112,co=18,ln=(r,t,e)=>{let n=dt(r),i=n+dt(t),o=new Uint8Array(i+e.byteLength);return lt(r,o,0),lt(t,o,n),o.set(e,i),o},fo=Symbol.for("@ipld/js-cid/CID");var Nt={};C(Nt,{code:()=>vo,createLink:()=>vn,createNode:()=>_n,decode:()=>Bo,encode:()=>U,name:()=>_o,prepare:()=>F,validate:()=>Ie});var uo=new TextDecoder;function Ce(r,t){let e=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(t>=r.length)throw new Error("protobuf: unexpected end of data");let i=r[t++];if(e+=n<28?(i&127)<<n:(i&127)*2**n,i<128)break}return[e,t]}function Jt(r,t){let e;[e,t]=Ce(r,t);let n=t+e;if(e<0||n<0)throw new Error("protobuf: invalid length");if(n>r.length)throw new Error("protobuf: unexpected end of data");return[r.subarray(t,n),n]}function dn(r,t){let e;return[e,t]=Ce(r,t),[e&7,e>>3,t]}function ho(r){let t={},e=r.length,n=0;for(;n<e;){let i,o;if([i,o,n]=dn(r,n),o===1){if(t.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Hash`);if(t.Name!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Name before Hash");if(t.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Hash");[t.Hash,n]=Jt(r,n)}else if(o===2){if(t.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Name`);if(t.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let s;[s,n]=Jt(r,n),t.Name=uo.decode(s)}else if(o===3){if(t.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(i!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Tsize`);[t.Tsize,n]=Ce(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${o}`)}if(n>e)throw new Error("protobuf: (PBLink) unexpected end of data");return t}function pn(r){let t=r.length,e=0,n,i=!1,o;for(;e<t;){let f,c;if([f,c,e]=dn(r,e),f!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${f}`);if(c===1){if(o)throw new Error("protobuf: (PBNode) duplicate Data section");[o,e]=Jt(r,e),n&&(i=!0)}else if(c===2){if(i)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let h;[h,e]=Jt(r,e),n.push(ho(h))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${c}`)}if(e>t)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return o&&(s.Data=o),s.Links=n||[],s}var yn=new TextEncoder,mn=2**32,lo=2**31;function po(r,t){let e=t.length;if(typeof r.Tsize=="number"){if(r.Tsize<0)throw new Error("Tsize cannot be negative");if(!Number.isSafeInteger(r.Tsize))throw new Error("Tsize too large for encoding");e=Tt(t,e,r.Tsize)-1,t[e]=24}if(typeof r.Name=="string"){let n=yn.encode(r.Name);e-=n.length,t.set(n,e),e=Tt(t,e,n.length)-1,t[e]=18}return r.Hash&&(e-=r.Hash.length,t.set(r.Hash,e),e=Tt(t,e,r.Hash.length)-1,t[e]=10),t.length-e}function gn(r){let t=yo(r),e=new Uint8Array(t),n=t;if(r.Data&&(n-=r.Data.length,e.set(r.Data,n),n=Tt(e,n,r.Data.length)-1,e[n]=10),r.Links)for(let i=r.Links.length-1;i>=0;i--){let o=po(r.Links[i],e.subarray(0,n));n-=o,n=Tt(e,n,o)-1,e[n]=18}return e}function mo(r){let t=0;if(r.Hash){let e=r.Hash.length;t+=1+e+wt(e)}if(typeof r.Name=="string"){let e=yn.encode(r.Name).length;t+=1+e+wt(e)}return typeof r.Tsize=="number"&&(t+=1+wt(r.Tsize)),t}function yo(r){let t=0;if(r.Data){let e=r.Data.length;t+=1+e+wt(e)}if(r.Links)for(let e of r.Links){let n=mo(e);t+=1+n+wt(n)}return t}function Tt(r,t,e){t-=wt(e);let n=t;for(;e>=lo;)r[t++]=e&127|128,e/=128;for(;e>=128;)r[t++]=e&127|128,e>>>=7;return r[t]=e,n}function wt(r){return r%2===0&&r++,Math.floor((go(r)+6)/7)}function go(r){let t=0;return r>=mn&&(r=Math.floor(r/mn),t=32),r>=1<<16&&(r>>>=16,t+=16),r>=1<<8&&(r>>>=8,t+=8),t+wo[r]}var wo=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];var bo=["Data","Links"],xo=["Hash","Name","Tsize"],Pe=new TextEncoder;function bn(r,t){if(r===t)return 0;let e=r.Name?Pe.encode(r.Name):[],n=t.Name?Pe.encode(t.Name):[],i=e.length,o=n.length;for(let s=0,f=Math.min(i,o);s<f;++s)if(e[s]!==n[s]){i=e[s],o=n[s];break}return i<o?-1:o<i?1:0}function wn(r,t){return!Object.keys(r).some(e=>!t.includes(e))}function xn(r){if(typeof r.asCID=="object"){let e=k.asCID(r);if(!e)throw new TypeError("Invalid DAG-PB form");return{Hash:e}}if(typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let t={};if(r.Hash){let e=k.asCID(r.Hash);try{e||(typeof r.Hash=="string"?e=k.parse(r.Hash):r.Hash instanceof Uint8Array&&(e=k.decode(r.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}e&&(t.Hash=e)}if(!t.Hash)throw new TypeError("Invalid DAG-PB form");return typeof r.Name=="string"&&(t.Name=r.Name),typeof r.Tsize=="number"&&(t.Tsize=r.Tsize),t}function F(r){if((r instanceof Uint8Array||typeof r=="string")&&(r={Data:r}),typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let t={};if(r.Data!==void 0)if(typeof r.Data=="string")t.Data=Pe.encode(r.Data);else if(r.Data instanceof Uint8Array)t.Data=r.Data;else throw new TypeError("Invalid DAG-PB form");if(r.Links!==void 0)if(Array.isArray(r.Links))t.Links=r.Links.map(xn),t.Links.sort(bn);else throw new TypeError("Invalid DAG-PB form");else t.Links=[];return t}function Ie(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!wn(r,bo))throw new TypeError("Invalid DAG-PB form (extraneous properties)");if(r.Data!==void 0&&!(r.Data instanceof Uint8Array))throw new TypeError("Invalid DAG-PB form (Data must be bytes)");if(!Array.isArray(r.Links))throw new TypeError("Invalid DAG-PB form (Links must be a list)");for(let t=0;t<r.Links.length;t++){let e=r.Links[t];if(!e||typeof e!="object"||Array.isArray(e)||e instanceof Uint8Array||e["/"]&&e["/"]===e.bytes)throw new TypeError("Invalid DAG-PB form (bad link)");if(!wn(e,xo))throw new TypeError("Invalid DAG-PB form (extraneous properties on link)");if(e.Hash===void 0)throw new TypeError("Invalid DAG-PB form (link must have a Hash)");if(e.Hash==null||!e.Hash["/"]||e.Hash["/"]!==e.Hash.bytes)throw new TypeError("Invalid DAG-PB form (link Hash must be a CID)");if(e.Name!==void 0&&typeof e.Name!="string")throw new TypeError("Invalid DAG-PB form (link Name must be a string)");if(e.Tsize!==void 0){if(typeof e.Tsize!="number"||e.Tsize%1!==0)throw new TypeError("Invalid DAG-PB form (link Tsize must be an integer)");if(e.Tsize<0)throw new TypeError("Invalid DAG-PB form (link Tsize cannot be negative)")}if(t>0&&bn(e,r.Links[t-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function _n(r,t=[]){return F({Data:r,Links:t})}function vn(r,t,e){return xn({Hash:e,Name:r,Tsize:t})}var _o="dag-pb",vo=112;function U(r){Ie(r);let t={};return r.Links&&(t.Links=r.Links.map(e=>{let n={};return e.Hash&&(n.Hash=e.Hash.bytes),e.Name!==void 0&&(n.Name=e.Name),e.Tsize!==void 0&&(n.Tsize=e.Tsize),n})),r.Data&&(t.Data=r.Data),gn(t)}function Bo(r){let t=pn(r),e={};return t.Data&&(e.Data=t.Data),t.Links&&(e.Links=t.Links.map(n=>{let i={};try{i.Hash=k.decode(n.Hash)}catch{}if(!i.Hash)throw new Error("Invalid Hash field found in link, expected CID");return n.Name!==void 0&&(i.Name=n.Name),n.Tsize!==void 0&&(i.Tsize=n.Tsize),i})),e}var Me={};C(Me,{sha256:()=>Ue,sha512:()=>Ao});var ot=({name:r,code:t,encode:e})=>new Fe(r,t,e),Fe=class{constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?it(this.code,e):e.then(n=>it(this.code,n))}else throw Error("Unknown type, must be binary type")}};var An=r=>async t=>new Uint8Array(await crypto.subtle.digest(r,t)),Ue=ot({name:"sha2-256",code:18,encode:An("SHA-256")}),Ao=ot({name:"sha2-512",code:19,encode:An("SHA-512")});var G=async(r,t,e)=>{e.codec==null&&(e.codec=Nt);let n=await Ue.digest(r),i=k.create(e.cidVersion,e.codec.code,n);return await t.put(i,r,e),i};var kn=async(r,t,e)=>{let n=new P({type:"directory",mtime:r.mtime,mode:r.mode}),i=U(F({Data:n.marshal()})),o=await G(i,t,e),s=r.path;return{cid:o,path:s,unixfs:n,size:BigInt(i.length),originalPath:r.originalPath,block:i}};var zt={};C(zt,{code:()=>Kt,decode:()=>Do,encode:()=>So,name:()=>ko});var ko="raw",Kt=85,So=r=>H(r),Do=r=>H(r);async function*Lo(r,t,e){let n=-1,i;for await(let o of bt(e.bufferImporter(r,t),e.blockWriteConcurrency)){if(n++,n===0){i={...o,single:!0};continue}else n===1&&i!=null&&(yield{...i,block:void 0,single:void 0},i=void 0);yield{...o,block:void 0}}i!=null&&(yield i)}function Sn(r){return r.single===!0}var Eo=(r,t,e)=>async function(i){if(i.length===1&&Sn(i[0])&&e.reduceSingleLeafToSelf){let u=i[0];return Sn(u)&&(r.mtime!==void 0||r.mode!==void 0)&&(u.unixfs=new P({type:"file",mtime:r.mtime,mode:r.mode,data:u.block}),u.block=U(F({Data:u.unixfs.marshal()})),u.cid=await G(u.block,t,{...e,cidVersion:e.cidVersion}),u.size=BigInt(u.block.length)),{cid:u.cid,path:r.path,unixfs:u.unixfs,size:u.size,originalPath:u.originalPath}}let o=new P({type:"file",mtime:r.mtime,mode:r.mode}),s=i.filter(u=>u.cid.code===Kt&&u.size>0||u.unixfs!=null&&u.unixfs.data==null&&u.unixfs.fileSize()>0n?!0:!!u.unixfs?.data?.length).map(u=>u.cid.code===Kt?(o.addBlockSize(u.size),{Name:"",Tsize:Number(u.size),Hash:u.cid}):(u.unixfs==null||u.unixfs.data==null?o.addBlockSize(u.unixfs?.fileSize()??0n):o.addBlockSize(BigInt(u.unixfs.data.length)),{Name:"",Tsize:Number(u.size),Hash:u.cid})),f={Data:o.marshal(),Links:s},c=U(F(f));return{cid:await G(c,t,e),path:r.path,unixfs:o,size:BigInt(c.length+f.Links.reduce((u,m)=>u+(m.Tsize??0),0)),originalPath:r.originalPath,block:c}},Dn=async(r,t,e)=>await e.layout(Lo(r,t,e),Eo(r,t,e));var He=O(xt(),1);function To(r){return Symbol.iterator in r}function No(r){return Symbol.asyncIterator in r}function zo(r){try{if(r instanceof Uint8Array)return async function*(){yield r}();if(To(r))return async function*(){yield*r}();if(No(r))return r}catch{throw(0,He.default)(new Error("Content was invalid"),"ERR_INVALID_CONTENT")}throw(0,He.default)(new Error("Content was invalid"),"ERR_INVALID_CONTENT")}function Ln(r){return async function*(e,n){for await(let i of e){let o;if(i.path!=null&&(o=i.path,i.path=i.path.split("/").filter(s=>s!=null&&s!==".").join("/")),Co(i)){let s={path:i.path,mtime:i.mtime,mode:i.mode,content:r.chunker(r.chunkValidator(zo(i.content))),originalPath:o};yield async()=>await Dn(s,n,r)}else if(i.path!=null){let s={path:i.path,mtime:i.mtime,mode:i.mode,originalPath:o};yield async()=>await kn(s,n,r)}else throw new Error("Import candidate must have content or path or both")}}}function Co(r){return r.content!=null}var J=class{constructor(t,e){this.options=e??{},this.root=t.root,this.dir=t.dir,this.path=t.path,this.dirty=t.dirty,this.flat=t.flat,this.parent=t.parent,this.parentKey=t.parentKey,this.unixfs=t.unixfs,this.mode=t.mode,this.mtime=t.mtime}},Ct=k.parse("QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn"),Pt=k.parse("zdj7WbTaiJT1fgatdet9Ei9iDB5hdCxkbVyhyh8YTUnXMiwYi");var st=class extends J{constructor(t,e){super(t,e),this._children=new Map}async put(t,e){this.cid=void 0,this.size=void 0,this.nodeSize=void 0,this._children.set(t,e)}async get(t){return await Promise.resolve(this._children.get(t))}childCount(){return this._children.size}directChildrenCount(){return this.childCount()}onlyChild(){return this._children.values().next().value}async*eachChildSeries(){for(let[t,e]of this._children.entries())yield{key:t,child:e}}estimateNodeSize(){if(this.nodeSize!==void 0)return this.nodeSize;this.nodeSize=0;for(let[t,e]of this._children.entries())e.size!=null&&e.cid!=null&&(this.nodeSize+=t.length+(this.options.cidVersion===1?Pt.bytes.byteLength:Ct.bytes.byteLength));return this.nodeSize}async*flush(t){let e=[];for(let[c,h]of this._children.entries()){let u=h;if(h instanceof J)for await(let m of h.flush(t))u=m,yield m;u.size!=null&&u.cid!=null&&e.push({Name:c,Tsize:Number(u.size),Hash:u.cid})}let n=new P({type:"directory",mtime:this.mtime,mode:this.mode}),i={Data:n.marshal(),Links:e},o=U(F(i)),s=await G(o,t,this.options),f=o.length+i.Links.reduce((c,h)=>c+(h.Tsize==null?0:h.Tsize),0);this.cid=s,this.size=f,yield{cid:s,unixfs:n,path:this.path,size:BigInt(f)}}};var Mn=O(Nn(),1);var Oe={};C(Oe,{identity:()=>Uo});var Uo=yt({prefix:"\0",name:"identity",encode:r=>ke(r),decode:r=>Ae(r)});var Re={};C(Re,{base2:()=>Mo});var Mo=E({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ve={};C(Ve,{base8:()=>Ho});var Ho=E({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var qe={};C(qe,{base10:()=>Oo});var Oo=tt({prefix:"9",name:"base10",alphabet:"0123456789"});var Ge={};C(Ge,{base16:()=>Ro,base16upper:()=>Vo});var Ro=E({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Vo=E({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var je={};C(je,{base36:()=>qo,base36upper:()=>Go});var qo=tt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Go=tt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var $e={};C($e,{base64:()=>jo,base64pad:()=>$o,base64url:()=>Wo,base64urlpad:()=>Jo});var jo=E({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),$o=E({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Wo=E({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Jo=E({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var We={};C(We,{base256emoji:()=>Yo});var zn=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}"),Ko=zn.reduce((r,t,e)=>(r[e]=t,r),[]),Xo=zn.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function Qo(r){return r.reduce((t,e)=>(t+=Ko[e],t),"")}function Zo(r){let t=[];for(let e of r){let n=Xo[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var Yo=yt({prefix:"\u{1F680}",name:"base256emoji",encode:Qo,decode:Zo});var Je={};C(Je,{identity:()=>rs});var Cn=0,ts="identity",Pn=H,es=r=>it(Cn,Pn(r)),rs={code:Cn,name:ts,encode:Pn,digest:es};var uc=new TextEncoder,hc=new TextDecoder;var Ke={...Oe,...Re,...Ve,...qe,...Ge,...Ne,...je,...Te,...$e,...We},yc={...Me,...Je};function at(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function Q(r=0){return globalThis.Buffer?.alloc!=null?at(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function ct(r=0){return globalThis.Buffer?.allocUnsafe!=null?at(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function Fn(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var In=Fn("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Xe=Fn("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=ct(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),is={utf8:In,"utf-8":In,hex:Ke.base16,latin1:Xe,ascii:Xe,binary:Xe,...Ke},Un=is;function Xt(r,t="utf8"){let e=Un[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?at(globalThis.Buffer.from(r,"utf-8")):e.decoder.decode(`${e.prefix}${r}`)}var I=class{constructor(t,e,n=0){this._options=t,this._popCount=0,this._parent=e,this._posAtParent=n,this._children=new Mn.default,this.key=null}async put(t,e){let n=await this._findNewBucketAndPos(t);await n.bucket._putAt(n,t,e)}async get(t){let e=await this._findChild(t);if(e!=null)return e.value}async del(t){let e=await this._findPlace(t),n=e.bucket._at(e.pos);n!=null&&n.key===t&&e.bucket._delAt(e.pos)}leafCount(){return this._children.compactArray().reduce((e,n)=>n instanceof I?e+n.leafCount():e+1,0)}childrenCount(){return this._children.length}onlyChild(){return this._children.get(0)}*eachLeafSeries(){let t=this._children.compactArray();for(let e of t)e instanceof I?yield*e.eachLeafSeries():yield e}serialize(t,e){let n=[];return e(this._children.reduce((i,o,s)=>(o!=null&&(o instanceof I?i.push(o.serialize(t,e)):i.push(t(o,s))),i),n))}async asyncTransform(t,e){return await Hn(this,t,e)}toJSON(){return this.serialize(ss,as)}prettyPrint(){return JSON.stringify(this.toJSON(),null," ")}tableSize(){return Math.pow(2,this._options.bits)}async _findChild(t){let e=await this._findPlace(t),n=e.bucket._at(e.pos);if(!(n instanceof I)&&n!=null&&n.key===t)return n}async _findPlace(t){let e=this._options.hash(typeof t=="string"?Xt(t):t),n=await e.take(this._options.bits),i=this._children.get(n);return i instanceof I?await i._findPlace(e):{bucket:this,pos:n,hash:e,existingChild:i}}async _findNewBucketAndPos(t){let e=await this._findPlace(t);if(e.existingChild!=null&&e.existingChild.key!==t){let n=new I(this._options,e.bucket,e.pos);e.bucket._putObjectAt(e.pos,n);let i=await n._findPlace(e.existingChild.hash);return i.bucket._putAt(i,e.existingChild.key,e.existingChild.value),await n._findNewBucketAndPos(e.hash)}return e}_putAt(t,e,n){this._putObjectAt(t.pos,{key:e,value:n,hash:t.hash})}_putObjectAt(t,e){this._children.get(t)==null&&this._popCount++,this._children.set(t,e)}_delAt(t){if(t===-1)throw new Error("Invalid position");this._children.get(t)!=null&&this._popCount--,this._children.unset(t),this._level()}_level(){if(this._parent!=null&&this._popCount<=1)if(this._popCount===1){let t=this._children.find(os);if(t!=null&&!(t instanceof I)){let e=t.hash;e.untake(this._options.bits);let n={pos:this._posAtParent,hash:e,bucket:this._parent};this._parent._putAt(n,t.key,t.value)}}else this._parent._delAt(this._posAtParent)}_at(t){return this._children.get(t)}};function os(r){return!!r}function ss(r,t){return r.key}function as(r){return r}async function Hn(r,t,e){let n=[];for(let i of r._children.compactArray())if(i instanceof I)await Hn(i,t,e);else{let o=await t(i);n.push({bitField:r._children.bitField(),children:o})}return await e(n)}var cs=[255,254,252,248,240,224,192,128],fs=[1,3,7,15,31,63,127,255],Qt=class{constructor(t){this._value=t,this._currentBytePos=t.length-1,this._currentBitPos=7}availableBits(){return this._currentBitPos+1+this._currentBytePos*8}totalBits(){return this._value.length*8}take(t){let e=t,n=0;for(;e>0&&this._haveBits();){let i=this._value[this._currentBytePos],o=this._currentBitPos+1,s=Math.min(o,e),f=us(i,o-s,s);n=(n<<s)+f,e-=s,this._currentBitPos-=s,this._currentBitPos<0&&(this._currentBitPos=7,this._currentBytePos--)}return n}untake(t){for(this._currentBitPos+=t;this._currentBitPos>7;)this._currentBitPos-=8,this._currentBytePos+=1}_haveBits(){return this._currentBytePos>=0}};function us(r,t,e){let n=hs(t,e);return(r&n)>>>t}function hs(r,t){return cs[r]&fs[Math.min(t+r-1,7)]}function It(r,t){t==null&&(t=r.reduce((i,o)=>i+o.length,0));let e=ct(t),n=0;for(let i of r)e.set(i,n),n+=i.length;return at(e)}function On(r){function t(e){return e instanceof Zt?e:new Zt(e,r)}return t}var Zt=class{constructor(t,e){if(!(t instanceof Uint8Array))throw new Error("can only hash Uint8Arrays");this._value=t,this._hashFn=e,this._depth=-1,this._availableBits=0,this._currentBufferIndex=0,this._buffers=[]}async take(t){let e=t;for(;this._availableBits<e;)await this._produceMoreBits();let n=0;for(;e>0;){let i=this._buffers[this._currentBufferIndex],o=Math.min(i.availableBits(),e),s=i.take(o);n=(n<<o)+s,e-=o,this._availableBits-=o,i.availableBits()===0&&this._currentBufferIndex++}return n}untake(t){let e=t;for(;e>0;){let n=this._buffers[this._currentBufferIndex],i=Math.min(n.totalBits()-n.availableBits(),e);n.untake(i),e-=i,this._availableBits+=i,this._currentBufferIndex>0&&n.totalBits()===n.availableBits()&&(this._depth--,this._currentBufferIndex--)}}async _produceMoreBits(){this._depth++;let t=this._depth>0?It([this._value,Uint8Array.from([this._depth])]):this._value,e=await this._hashFn(t),n=new Qt(e);this._buffers.push(n),this._availableBits+=n.availableBits()}};function Rn(r){if(r==null||r.hashFn==null)throw new Error("please define an options.hashFn");let t={bits:r.bits??8,hash:On(r.hashFn)};return new I(t)}var te=O(Gn(),1);function ls(r){let t=new Array(4);for(let e=0;e<4;e++)t[e]=r&255,r=r>>8;return new Uint8Array(t)}var Vc=ot({name:"murmur3-32",code:35,encode:r=>ls(te.default.x86.hash32(r))}),jn=ot({name:"murmur3-128",code:34,encode:r=>pt.fromHex(te.default.x64.hash128(r))}),qc=ot({name:"murmur3-x64-64",code:34,encode:r=>pt.fromHex(te.default.x64.hash128(r)).subarray(0,8)});async function ds(r){return(await jn.encode(r)).slice(0,8).reverse()}var $n=BigInt(34),Qe=class extends J{constructor(t,e){super(t,e),this._bucket=Rn({hashFn:ds,bits:8})}async put(t,e){this.cid=void 0,this.size=void 0,this.nodeSize=void 0,await this._bucket.put(t,e)}async get(t){return await this._bucket.get(t)}childCount(){return this._bucket.leafCount()}directChildrenCount(){return this._bucket.childrenCount()}onlyChild(){return this._bucket.onlyChild()}async*eachChildSeries(){for await(let{key:t,value:e}of this._bucket.eachLeafSeries())yield{key:t,child:e}}estimateNodeSize(){return this.nodeSize!==void 0?this.nodeSize:(this.nodeSize=Kn(this._bucket,this,this.options),this.nodeSize)}async*flush(t){for await(let e of Jn(this._bucket,t,this,this.options))yield{...e,path:this.path}}},Wn=Qe;async function*Jn(r,t,e,n){let i=r._children,o=[],s=0n;for(let a=0;a<i.length;a++){let l=i.get(a);if(l==null)continue;let p=a.toString(16).toUpperCase().padStart(2,"0");if(l instanceof I){let S;for await(let d of Jn(l,t,null,n))S=d;if(S==null)throw new Error("Could not flush sharded directory, no subshard found");o.push({Name:p,Tsize:Number(S.size),Hash:S.cid}),s+=S.size}else if(ps(l.value)){let S=l.value,d;for await(let w of S.flush(t))d=w,yield d;if(d==null)throw new Error("Did not flush dir");let y=p+l.key;o.push({Name:y,Tsize:Number(d.size),Hash:d.cid}),s+=d.size}else{let S=l.value;if(S.cid==null)continue;let d=p+l.key,y=S.size;o.push({Name:d,Tsize:Number(y),Hash:S.cid}),s+=BigInt(y??0)}}let f=Uint8Array.from(i.bitField().reverse()),c=new P({type:"hamt-sharded-directory",data:f,fanout:BigInt(r.tableSize()),hashType:$n,mtime:e?.mtime,mode:e?.mode}),h={Data:c.marshal(),Links:o},u=U(F(h)),m=await G(u,t,n),D=BigInt(u.byteLength)+s;yield{cid:m,unixfs:c,size:D}}function ps(r){return typeof r.flush=="function"}function Kn(r,t,e){let n=r._children,i=[];for(let c=0;c<n.length;c++){let h=n.get(c);if(h==null)continue;let u=c.toString(16).toUpperCase().padStart(2,"0");if(h instanceof I){let m=Kn(h,null,e);i.push({Name:u,Tsize:Number(m),Hash:e.cidVersion===0?Ct:Pt})}else if(typeof h.value.flush=="function"){let D=h.value.nodeSize();i.push({Name:u+h.key,Tsize:Number(D),Hash:e.cidVersion===0?Ct:Pt})}else{let m=h.value;if(m.cid==null)continue;let D=u+h.key,a=m.size;i.push({Name:D,Tsize:Number(a),Hash:m.cid})}}let o=Uint8Array.from(n.bitField().reverse()),s=new P({type:"hamt-sharded-directory",data:o,fanout:BigInt(r.tableSize()),hashType:$n,mtime:t?.mtime,mode:t?.mode});return U(F({Data:s.marshal(),Links:i})).length}async function Ze(r,t,e,n){let i=t;t instanceof st&&t.estimateNodeSize()>e&&(i=await ms(t,n));let o=i.parent;if(o!=null){if(i!==t){if(r!=null&&(r.parent=i),i.parentKey==null)throw new Error("No parent key found");await o.put(i.parentKey,i)}return await Ze(i,o,e,n)}return i}async function ms(r,t){let e=new Wn({root:r.root,dir:!0,parent:r.parent,parentKey:r.parentKey,path:r.path,dirty:r.dirty,flat:!1,mtime:r.mtime,mode:r.mode},t);for await(let{key:n,child:i}of r.eachChildSeries())await e.put(n,i);return e}var Xn=(r="")=>(r.trim().match(/([^\\/]|\\\/)+/g)??[]).filter(Boolean);async function ys(r,t,e){let n=Xn(r.path??""),i=n.length-1,o=t,s="";for(let f=0;f<n.length;f++){let c=n[f];s+=`${s!==""?"/":""}${c}`;let h=f===i;if(o.dirty=!0,o.cid=void 0,o.size=void 0,h)await o.put(c,r),t=await Ze(null,o,e.shardSplitThresholdBytes,e);else{let u=await o.get(c);(u==null||!(u instanceof J))&&(u=new st({root:!1,dir:!0,parent:o,parentKey:c,path:s,dirty:!0,flat:!0,mtime:u?.unixfs?.mtime,mode:u?.unixfs?.mode},e)),await o.put(c,u),o=u}}return t}async function*Qn(r,t){if(!(r instanceof J)){r.unixfs?.isDirectory()===!0&&(yield r);return}yield*r.flush(t)}function Zn(r){return async function*(e,n){let i=new st({root:!0,dir:!0,path:"",dirty:!0,flat:!0},r),o,s=!1;for await(let f of e){if(f==null)continue;let c=`${f.originalPath??""}`.split("/")[0];c!=null&&c!==""&&(o==null?(o=c,s=!0):o!==c&&(s=!1)),i=await ys(f,i,r),(f.unixfs==null||!f.unixfs.isDirectory())&&(yield f)}if(r.wrapWithDirectory||s&&i.childCount()>1)yield*Qn(i,n);else for await(let f of i.eachChildSeries())f!=null&&(yield*Qn(f.child,n))}}var Ye=O(xt(),1);var Yn=()=>async function*(t){for await(let e of t){if(e.length===void 0)throw(0,Ye.default)(new Error("Content was invalid"),"ERR_INVALID_CONTENT");if(typeof e=="string"||e instanceof String)yield Xt(e.toString());else if(Array.isArray(e))yield Uint8Array.from(e);else if(e instanceof Uint8Array)yield e;else throw(0,Ye.default)(new Error("Content was invalid"),"ERR_INVALID_CONTENT")}};function ti(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}var ri=Symbol.for("@achingbrain/uint8arraylist");function ei(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let i=e+n.byteLength;if(t<i)return{buf:n,index:t-e};e=i}throw new RangeError("index is out of bounds")}function ee(r){return!!r?.[ri]}var K=class{constructor(...t){Object.defineProperty(this,ri,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(ee(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(ee(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=ei(this.bufs,t);return e.buf[e.index]}set(t,e){let n=ei(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(ee(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:i}=this._subList(t,e);return It(n,i)}subarray(t,e){let{bufs:n,length:i}=this._subList(t,e);return n.length===1?n[0]:It(n,i)}sublist(t,e){let{bufs:n,length:i}=this._subList(t,e),o=new K;return o.length=i,o.bufs=n,o}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],f=i,c=f+s.byteLength;if(i=c,t>=c)continue;let h=t>=f&&t<c,u=e>f&&e<=c;if(h&&u){if(t===f&&e===c){n.push(s);break}let m=t-f;n.push(s.subarray(m,m+(e-t)));break}if(h){if(t===0){n.push(s);continue}n.push(s.subarray(t-f));continue}if(u){if(e===c){n.push(s);break}n.push(s.subarray(0,e-f));break}n.push(s)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!ee(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let m=0;m<o;m++)s[m]=-1;for(let m=0;m<i;m++)s[n[m]]=m;let f=s,c=this.byteLength-n.byteLength,h=n.byteLength-1,u;for(let m=e;m<=c;m+=u){u=0;for(let D=h;D>=0;D--){let a=this.get(m+D);if(n[D]!==a){u=Math.max(1,D-f[a]);break}}if(u===0)return m}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let i=Q(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,e,n),this.write(i,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let i=Q(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,e,n),this.write(i,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let i=Q(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,e,n),this.write(i,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let i=Q(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,e,n),this.write(i,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let i=Q(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,e,n),this.write(i,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let i=Q(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,e,n),this.write(i,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let i=Q(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,e,n),this.write(i,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let i=Q(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,e,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof K)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!ti(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new K;return n.bufs=t,e==null&&(e=t.reduce((i,o)=>i+o.byteLength,0)),n.length=e,n}};var gs=262144,ni=(r={})=>{let t=r.chunkSize??gs;return async function*(n){let i=new K,o=0,s=!1;for await(let f of n)for(i.append(f),o+=f.length;o>=t;)if(yield i.slice(0,t),s=!0,t===i.length)i=new K,o=0;else{let c=new K;c.append(i.sublist(t)),i=c,o-=t}(!s||o>0)&&(yield i.subarray(0,o))}};var ws=174;function tr(r){let t=r?.maxChildrenPerNode??ws;return async function e(n,i){let o=[];for await(let s of ft(n,t))o.push(await i(s));return o.length>1?await e(o,i):o[0]}}var re=class extends Event{constructor(t,e){super(t),this.detail=e}};function ii(r){return async function*(e,n){for await(let i of e.content)yield async()=>{r.onProgress?.(new re("unixfs:importer:progress",{bytes:i.byteLength,path:e.path}));let o,s={codec:Nt,cidVersion:r.cidVersion,onProgress:r.onProgress};return r.rawLeaves?(s.codec=zt,s.cidVersion=1):(o=new P({type:r.leafType,data:i}),i=U({Data:o.marshal(),Links:[]})),{cid:await G(i,n,s),unixfs:o,size:BigInt(i.length),block:i}}}}async function ne(r){for await(let t of r)return t}var er=O(xt(),1);async function*rr(r,t,e={}){let n;Symbol.asyncIterator in r||Symbol.iterator in r?n=r:n=[r];let i=e.wrapWithDirectory??!1,o=e.shardSplitThresholdBytes??262144,s=e.cidVersion??1,f=e.rawLeaves??!0,c=e.leafType??"file",h=e.fileImportConcurrency??50,u=e.blockWriteConcurrency??10,m=e.reduceSingleLeafToSelf??!0,D=e.chunker??ni(),a=e.chunkValidator??Yn(),l=e.dagBuilder??Ln({chunker:D,chunkValidator:a,wrapWithDirectory:i,layout:e.layout??tr(),bufferImporter:e.bufferImporter??ii({cidVersion:s,rawLeaves:f,leafType:c,onProgress:e.onProgress}),blockWriteConcurrency:u,reduceSingleLeafToSelf:m,cidVersion:s,onProgress:e.onProgress}),p=e.treeBuilder??Zn({wrapWithDirectory:i,shardSplitThresholdBytes:o,cidVersion:s,onProgress:e.onProgress});for await(let S of p(bt(l(n,t),h),t))yield{cid:S.cid,path:S.path,unixfs:S.unixfs,size:S.size}}async function nr(r,t,e={}){let n=await ne(rr([r],t,e));if(n==null)throw(0,er.default)(new Error("Nothing imported"),"ERR_INVALID_PARAMS");return n}async function bs(r,t,e={}){let n=await ne(rr([r],t,e));if(n==null)throw(0,er.default)(new Error("Nothing imported"),"ERR_INVALID_PARAMS");return n}async function xs(r,t,e={}){return await nr({content:r},t,e)}async function _s(r,t,e={}){return await nr({content:r},t,e)}return ui(vs);})();
2
+ "use strict";var IpfsUnixfsImporter=(()=>{var oi=Object.create;var Rt=Object.defineProperty;var si=Object.getOwnPropertyDescriptor;var ai=Object.getOwnPropertyNames;var ci=Object.getPrototypeOf,fi=Object.prototype.hasOwnProperty;var z=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),C=(r,t)=>{for(var e in t)Rt(r,e,{get:t[e],enumerable:!0})},ir=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ai(t))!fi.call(r,i)&&i!==e&&Rt(r,i,{get:()=>t[i],enumerable:!(n=si(t,i))||n.enumerable});return r};var O=(r,t,e)=>(e=r!=null?oi(ci(r)):{},ir(t||!r||!r.__esModule?Rt(e,"default",{value:r,enumerable:!0}):e,r)),ui=r=>ir(Rt({},"__esModule",{value:!0}),r);var _t=z((Ds,sr)=>{"use strict";function or(r,t){for(let e in t)Object.defineProperty(r,e,{value:t[e],enumerable:!0,configurable:!0});return r}function hi(r,t,e){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");e||(e={}),typeof t=="object"&&(e=t,t=""),t&&(e.code=t);try{return or(r,e)}catch{e.message=r.message,e.stack=r.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(r)),or(new i,e)}}sr.exports=hi});var cr=z((Ls,ar)=>{"use strict";ar.exports=li;function li(r,t){for(var e=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)e[n++]=arguments[i++];return new Promise(function(f,a){e[n]=function(u){if(o)if(o=!1,u)a(u);else{for(var p=new Array(arguments.length-1),D=0;D<p.length;)p[D++]=arguments[D];f.apply(null,p)}};try{r.apply(t||null,e)}catch(h){o&&(o=!1,a(h))}})}});var lr=z(hr=>{"use strict";var Vt=hr;Vt.length=function(t){var e=t.length;if(!e)return 0;for(var n=0;--e%4>1&&t.charAt(e)==="=";)++n;return Math.ceil(t.length*3)/4-n};var ht=new Array(64),ur=new Array(123);for(R=0;R<64;)ur[ht[R]=R<26?R+65:R<52?R+71:R<62?R-4:R-59|43]=R++;var R;Vt.encode=function(t,e,n){for(var i=null,o=[],s=0,f=0,a;e<n;){var h=t[e++];switch(f){case 0:o[s++]=ht[h>>2],a=(h&3)<<4,f=1;break;case 1:o[s++]=ht[a|h>>4],a=(h&15)<<2,f=2;break;case 2:o[s++]=ht[a|h>>6],o[s++]=ht[h&63],f=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return f&&(o[s++]=ht[a],o[s++]=61,f===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var fr="invalid encoding";Vt.decode=function(t,e,n){for(var i=n,o=0,s,f=0;f<t.length;){var a=t.charCodeAt(f++);if(a===61&&o>1)break;if((a=ur[a])===void 0)throw Error(fr);switch(o){case 0:s=a,o=1;break;case 1:e[n++]=s<<2|(a&48)>>4,s=a,o=2;break;case 2:e[n++]=(s&15)<<4|(a&60)>>2,s=a,o=3;break;case 3:e[n++]=(s&3)<<6|a,o=0;break}}if(o===1)throw Error(fr);return n-i};Vt.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var pr=z((Ts,dr)=>{"use strict";dr.exports=qt;function qt(){this._listeners={}}qt.prototype.on=function(t,e,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:n||this}),this};qt.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===e?n.splice(i,1):++i;return this};qt.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<e.length;)e[i].fn.apply(e[i++].ctx,n)}return this}});var _r=z((Ns,xr)=>{"use strict";xr.exports=mr(mr);function mr(r){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),n=e[3]===128;function i(a,h,u){t[0]=a,h[u]=e[0],h[u+1]=e[1],h[u+2]=e[2],h[u+3]=e[3]}function o(a,h,u){t[0]=a,h[u]=e[3],h[u+1]=e[2],h[u+2]=e[1],h[u+3]=e[0]}r.writeFloatLE=n?i:o,r.writeFloatBE=n?o:i;function s(a,h){return e[0]=a[h],e[1]=a[h+1],e[2]=a[h+2],e[3]=a[h+3],t[0]}function f(a,h){return e[3]=a[h],e[2]=a[h+1],e[1]=a[h+2],e[0]=a[h+3],t[0]}r.readFloatLE=n?s:f,r.readFloatBE=n?f:s}():function(){function t(n,i,o,s){var f=i<0?1:0;if(f&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((f<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((f<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var a=Math.floor(Math.log(i)/Math.LN2),h=Math.round(i*Math.pow(2,-a)*8388608)&8388607;n((f<<31|a+127<<23|h)>>>0,o,s)}}r.writeFloatLE=t.bind(null,yr),r.writeFloatBE=t.bind(null,gr);function e(n,i,o){var s=n(i,o),f=(s>>31)*2+1,a=s>>>23&255,h=s&8388607;return a===255?h?NaN:f*(1/0):a===0?f*1401298464324817e-60*h:f*Math.pow(2,a-150)*(h+8388608)}r.readFloatLE=e.bind(null,wr),r.readFloatBE=e.bind(null,br)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),n=e[7]===128;function i(a,h,u){t[0]=a,h[u]=e[0],h[u+1]=e[1],h[u+2]=e[2],h[u+3]=e[3],h[u+4]=e[4],h[u+5]=e[5],h[u+6]=e[6],h[u+7]=e[7]}function o(a,h,u){t[0]=a,h[u]=e[7],h[u+1]=e[6],h[u+2]=e[5],h[u+3]=e[4],h[u+4]=e[3],h[u+5]=e[2],h[u+6]=e[1],h[u+7]=e[0]}r.writeDoubleLE=n?i:o,r.writeDoubleBE=n?o:i;function s(a,h){return e[0]=a[h],e[1]=a[h+1],e[2]=a[h+2],e[3]=a[h+3],e[4]=a[h+4],e[5]=a[h+5],e[6]=a[h+6],e[7]=a[h+7],t[0]}function f(a,h){return e[7]=a[h],e[6]=a[h+1],e[5]=a[h+2],e[4]=a[h+3],e[3]=a[h+4],e[2]=a[h+5],e[1]=a[h+6],e[0]=a[h+7],t[0]}r.readDoubleLE=n?s:f,r.readDoubleBE=n?f:s}():function(){function t(n,i,o,s,f,a){var h=s<0?1:0;if(h&&(s=-s),s===0)n(0,f,a+i),n(1/s>0?0:2147483648,f,a+o);else if(isNaN(s))n(0,f,a+i),n(2146959360,f,a+o);else if(s>17976931348623157e292)n(0,f,a+i),n((h<<31|2146435072)>>>0,f,a+o);else{var u;if(s<22250738585072014e-324)u=s/5e-324,n(u>>>0,f,a+i),n((h<<31|u/4294967296)>>>0,f,a+o);else{var p=Math.floor(Math.log(s)/Math.LN2);p===1024&&(p=1023),u=s*Math.pow(2,-p),n(u*4503599627370496>>>0,f,a+i),n((h<<31|p+1023<<20|u*1048576&1048575)>>>0,f,a+o)}}}r.writeDoubleLE=t.bind(null,yr,0,4),r.writeDoubleBE=t.bind(null,gr,4,0);function e(n,i,o,s,f){var a=n(s,f+i),h=n(s,f+o),u=(h>>31)*2+1,p=h>>>20&2047,D=4294967296*(h&1048575)+a;return p===2047?D?NaN:u*(1/0):p===0?u*5e-324*D:u*Math.pow(2,p-1075)*(D+4503599627370496)}r.readDoubleLE=e.bind(null,wr,0,4),r.readDoubleBE=e.bind(null,br,4,0)}(),r}function yr(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function gr(r,t,e){t[e]=r>>>24,t[e+1]=r>>>16&255,t[e+2]=r>>>8&255,t[e+3]=r&255}function wr(r,t){return(r[t]|r[t+1]<<8|r[t+2]<<16|r[t+3]<<24)>>>0}function br(r,t){return(r[t]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3])>>>0}});var vr=z((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(r){}return null}});var Ar=z(Br=>{"use strict";var ie=Br;ie.length=function(t){for(var e=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?e+=1:n<2048?e+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,e+=4):e+=3;return e};ie.read=function(t,e,n){var i=n-e;if(i<1)return"";for(var o=null,s=[],f=0,a;e<n;)a=t[e++],a<128?s[f++]=a:a>191&&a<224?s[f++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[f++]=55296+(a>>10),s[f++]=56320+(a&1023)):s[f++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&63,f>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),f=0);return o?(f&&o.push(String.fromCharCode.apply(String,s.slice(0,f))),o.join("")):String.fromCharCode.apply(String,s.slice(0,f))};ie.write=function(t,e,n){for(var i=n,o,s,f=0;f<t.length;++f)o=t.charCodeAt(f),o<128?e[n++]=o:o<2048?(e[n++]=o>>6|192,e[n++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(f+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++f,e[n++]=o>>18|240,e[n++]=o>>12&63|128,e[n++]=o>>6&63|128,e[n++]=o&63|128):(e[n++]=o>>12|224,e[n++]=o>>6&63|128,e[n++]=o&63|128);return n-i}});var Sr=z((Cs,kr)=>{"use strict";kr.exports=di;function di(r,t,e){var n=e||8192,i=n>>>1,o=null,s=n;return function(a){if(a<1||a>i)return r(a);s+a>n&&(o=r(n),s=0);var h=t.call(o,s,s+=a);return s&7&&(s=(s|7)+1),h}}});var Lr=z((Ps,Dr)=>{"use strict";Dr.exports=N;var vt=nt();function N(r,t){this.lo=r>>>0,this.hi=t>>>0}var rt=N.zero=new N(0,0);rt.toNumber=function(){return 0};rt.zzEncode=rt.zzDecode=function(){return this};rt.length=function(){return 1};var pi=N.zeroHash="\0\0\0\0\0\0\0\0";N.fromNumber=function(t){if(t===0)return rt;var e=t<0;e&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new N(n,i)};N.from=function(t){if(typeof t=="number")return N.fromNumber(t);if(vt.isString(t))if(vt.Long)t=vt.Long.fromString(t);else return N.fromNumber(parseInt(t,10));return t.low||t.high?new N(t.low>>>0,t.high>>>0):rt};N.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=~this.lo+1>>>0,n=~this.hi>>>0;return e||(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296};N.prototype.toLong=function(t){return vt.Long?new vt.Long(this.lo|0,this.hi|0,!!t):{low:this.lo|0,high:this.hi|0,unsigned:!!t}};var Y=String.prototype.charCodeAt;N.fromHash=function(t){return t===pi?rt:new N((Y.call(t,0)|Y.call(t,1)<<8|Y.call(t,2)<<16|Y.call(t,3)<<24)>>>0,(Y.call(t,4)|Y.call(t,5)<<8|Y.call(t,6)<<16|Y.call(t,7)<<24)>>>0)};N.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};N.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};N.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};N.prototype.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}});var nt=z(oe=>{"use strict";var x=oe;x.asPromise=cr();x.base64=lr();x.EventEmitter=pr();x.float=_r();x.inquire=vr();x.utf8=Ar();x.pool=Sr();x.LongBits=Lr();x.isNode=!!(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);x.global=x.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||oe;x.emptyArray=Object.freeze?Object.freeze([]):[];x.emptyObject=Object.freeze?Object.freeze({}):{};x.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};x.isString=function(t){return typeof t=="string"||t instanceof String};x.isObject=function(t){return t&&typeof t=="object"};x.isset=x.isSet=function(t,e){var n=t[e];return n!=null&&t.hasOwnProperty(e)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};x.Buffer=function(){try{var r=x.inquire("buffer").Buffer;return r.prototype.utf8Write?r:null}catch{return null}}();x._Buffer_from=null;x._Buffer_allocUnsafe=null;x.newBuffer=function(t){return typeof t=="number"?x.Buffer?x._Buffer_allocUnsafe(t):new x.Array(t):x.Buffer?x._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};x.Array=typeof Uint8Array<"u"?Uint8Array:Array;x.Long=x.global.dcodeIO&&x.global.dcodeIO.Long||x.global.Long||x.inquire("long");x.key2Re=/^true|false|0|1$/;x.key32Re=/^-?(?:0|[1-9][0-9]*)$/;x.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;x.longToHash=function(t){return t?x.LongBits.from(t).toHash():x.LongBits.zeroHash};x.longFromHash=function(t,e){var n=x.LongBits.fromHash(t);return x.Long?x.Long.fromBits(n.lo,n.hi,e):n.toNumber(!!e)};function Er(r,t,e){for(var n=Object.keys(t),i=0;i<n.length;++i)(r[n[i]]===void 0||!e)&&(r[n[i]]=t[n[i]]);return r}x.merge=Er;x.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function Tr(r){function t(e,n){if(!(this instanceof t))return new t(e,n);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&Er(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return r},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}x.newError=Tr;x.ProtocolError=Tr("ProtocolError");x.oneOfGetter=function(t){for(var e={},n=0;n<t.length;++n)e[t[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(e[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};x.oneOfSetter=function(t){return function(e){for(var n=0;n<t.length;++n)t[n]!==e&&delete this[t[n]]}};x.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};x._configure=function(){var r=x.Buffer;if(!r){x._Buffer_from=x._Buffer_allocUnsafe=null;return}x._Buffer_from=r.from!==Uint8Array.from&&r.from||function(e,n){return new r(e,n)},x._Buffer_allocUnsafe=r.allocUnsafe||function(e){return new r(e)}}});var ce=z((Fs,Ir)=>{"use strict";Ir.exports=T;var j=nt(),ae,Cr=j.LongBits,mi=j.utf8;function V(r,t){return RangeError("index out of range: "+r.pos+" + "+(t||1)+" > "+r.len)}function T(r){this.buf=r,this.pos=0,this.len=r.length}var Nr=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new T(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new T(t);throw Error("illegal buffer")},Pr=function(){return j.Buffer?function(e){return(T.create=function(i){return j.Buffer.isBuffer(i)?new ae(i):Nr(i)})(e)}:Nr};T.create=Pr();T.prototype._slice=j.Array.prototype.subarray||j.Array.prototype.slice;T.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,V(this,10);return t}}();T.prototype.int32=function(){return this.uint32()|0};T.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function se(){var r=new Cr(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r;if(r.lo=(r.lo|(this.buf[this.pos]&127)<<28)>>>0,r.hi=(r.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return r;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw V(this);if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r}return r.lo=(r.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,r}if(this.len-this.pos>4){for(;t<5;++t)if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}else for(;t<5;++t){if(this.pos>=this.len)throw V(this);if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}throw Error("invalid varint encoding")}T.prototype.bool=function(){return this.uint32()!==0};function Gt(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}T.prototype.fixed32=function(){if(this.pos+4>this.len)throw V(this,4);return Gt(this.buf,this.pos+=4)};T.prototype.sfixed32=function(){if(this.pos+4>this.len)throw V(this,4);return Gt(this.buf,this.pos+=4)|0};function zr(){if(this.pos+8>this.len)throw V(this,8);return new Cr(Gt(this.buf,this.pos+=4),Gt(this.buf,this.pos+=4))}T.prototype.float=function(){if(this.pos+4>this.len)throw V(this,4);var t=j.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};T.prototype.double=function(){if(this.pos+8>this.len)throw V(this,4);var t=j.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};T.prototype.bytes=function(){var t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw V(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,n):e===n?new this.buf.constructor(0):this._slice.call(this.buf,e,n)};T.prototype.string=function(){var t=this.bytes();return mi.read(t,0,t.length)};T.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw V(this,t);this.pos+=t}else do if(this.pos>=this.len)throw V(this);while(this.buf[this.pos++]&128);return this};T.prototype.skipType=function(r){switch(r){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(r=this.uint32()&7)!==4;)this.skipType(r);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+r+" at offset "+this.pos)}return this};T._configure=function(r){ae=r,T.create=Pr(),ae._configure();var t=j.Long?"toLong":"toNumber";j.merge(T.prototype,{int64:function(){return se.call(this)[t](!1)},uint64:function(){return se.call(this)[t](!0)},sint64:function(){return se.call(this).zzDecode()[t](!1)},fixed64:function(){return zr.call(this)[t](!0)},sfixed64:function(){return zr.call(this)[t](!1)}})}});var Hr=z((Us,Mr)=>{"use strict";Mr.exports=it;var Ur=ce();(it.prototype=Object.create(Ur.prototype)).constructor=it;var Fr=nt();function it(r){Ur.call(this,r)}it._configure=function(){Fr.Buffer&&(it.prototype._slice=Fr.Buffer.prototype.slice)};it.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};it._configure()});var me=z((Ms,qr)=>{"use strict";qr.exports=A;var M=nt(),fe,jt=M.LongBits,Or=M.base64,Rr=M.utf8;function Bt(r,t,e){this.fn=r,this.len=t,this.next=void 0,this.val=e}function he(){}function yi(r){this.head=r.head,this.tail=r.tail,this.len=r.len,this.next=r.states}function A(){this.len=0,this.head=new Bt(he,0,0),this.tail=this.head,this.states=null}var Vr=function(){return M.Buffer?function(){return(A.create=function(){return new fe})()}:function(){return new A}};A.create=Vr();A.alloc=function(t){return new M.Array(t)};M.Array!==Array&&(A.alloc=M.pool(A.alloc,M.Array.prototype.subarray));A.prototype._push=function(t,e,n){return this.tail=this.tail.next=new Bt(t,e,n),this.len+=e,this};function le(r,t,e){t[e]=r&255}function gi(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}function de(r,t){this.len=r,this.next=void 0,this.val=t}de.prototype=Object.create(Bt.prototype);de.prototype.fn=gi;A.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new de((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};A.prototype.int32=function(t){return t<0?this._push(pe,10,jt.fromNumber(t)):this.uint32(t)};A.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function pe(r,t,e){for(;r.hi;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}A.prototype.uint64=function(t){var e=jt.from(t);return this._push(pe,e.length(),e)};A.prototype.int64=A.prototype.uint64;A.prototype.sint64=function(t){var e=jt.from(t).zzEncode();return this._push(pe,e.length(),e)};A.prototype.bool=function(t){return this._push(le,1,t?1:0)};function ue(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}A.prototype.fixed32=function(t){return this._push(ue,4,t>>>0)};A.prototype.sfixed32=A.prototype.fixed32;A.prototype.fixed64=function(t){var e=jt.from(t);return this._push(ue,4,e.lo)._push(ue,4,e.hi)};A.prototype.sfixed64=A.prototype.fixed64;A.prototype.float=function(t){return this._push(M.float.writeFloatLE,4,t)};A.prototype.double=function(t){return this._push(M.float.writeDoubleLE,8,t)};var wi=M.Array.prototype.set?function(t,e,n){e.set(t,n)}:function(t,e,n){for(var i=0;i<t.length;++i)e[n+i]=t[i]};A.prototype.bytes=function(t){var e=t.length>>>0;if(!e)return this._push(le,1,0);if(M.isString(t)){var n=A.alloc(e=Or.length(t));Or.decode(t,n,0),t=n}return this.uint32(e)._push(wi,e,t)};A.prototype.string=function(t){var e=Rr.length(t);return e?this.uint32(e)._push(Rr.write,e,t):this._push(le,1,0)};A.prototype.fork=function(){return this.states=new yi(this),this.head=this.tail=new Bt(he,0,0),this.len=0,this};A.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Bt(he,0,0),this.len=0),this};A.prototype.ldelim=function(){var t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=e,this.len+=n),this};A.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e};A._configure=function(r){fe=r,A.create=Vr(),fe._configure()}});var $r=z((Hs,jr)=>{"use strict";jr.exports=$;var Gr=me();($.prototype=Object.create(Gr.prototype)).constructor=$;var tt=nt();function $(){Gr.call(this)}$._configure=function(){$.alloc=tt._Buffer_allocUnsafe,$.writeBytesBuffer=tt.Buffer&&tt.Buffer.prototype instanceof Uint8Array&&tt.Buffer.prototype.set.name==="set"?function(t,e,n){e.set(t,n)}:function(t,e,n){if(t.copy)t.copy(e,n,0,t.length);else for(var i=0;i<t.length;)e[n++]=t[i++]}};$.prototype.bytes=function(t){tt.isString(t)&&(t=tt._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push($.writeBytesBuffer,e,t),this};function bi(r,t,e){r.length<40?tt.utf8.write(r,t,e):t.utf8Write?t.utf8Write(r,e):t.write(r,e)}$.prototype.string=function(t){var e=tt.Buffer.byteLength(t);return this.uint32(e),e&&this._push(bi,e,t),this};$._configure()});var Nn=z((rc,Tn)=>{"use strict";Tn.exports=class{constructor(){this._bitArrays=[],this._data=[],this._length=0,this._changedLength=!1,this._changedData=!1}set(t,e){let n=this._internalPositionFor(t,!1);if(e===void 0)n!==-1&&(this._unsetInternalPos(n),this._unsetBit(t),this._changedLength=!0,this._changedData=!0);else{let i=!1;n===-1?(n=this._data.length,this._setBit(t),this._changedData=!0):i=!0,this._setInternalPos(n,t,e,i),this._changedLength=!0}}unset(t){this.set(t,void 0)}get(t){this._sortData();let e=this._internalPositionFor(t,!0);if(e!==-1)return this._data[e][1]}push(t){return this.set(this.length,t),this.length}get length(){if(this._sortData(),this._changedLength){let t=this._data[this._data.length-1];this._length=t?t[0]+1:0,this._changedLength=!1}return this._length}forEach(t){let e=0;for(;e<this.length;)t(this.get(e),e,this),e++}map(t){let e=0,n=new Array(this.length);for(;e<this.length;)n[e]=t(this.get(e),e,this),e++;return n}reduce(t,e){let n=0,i=e;for(;n<this.length;){let o=this.get(n);i=t(i,o,n),n++}return i}find(t){let e=0,n,i;for(;e<this.length&&!n;)i=this.get(e),n=t(i),e++;return n?i:void 0}_internalPositionFor(t,e){let n=this._bytePosFor(t,e);if(n>=this._bitArrays.length)return-1;let i=this._bitArrays[n],o=t-n*7;if(!((i&1<<o)>0))return-1;let f=this._bitArrays.slice(0,n).reduce(Po,0),a=~(4294967295<<o+1),h=En(i&a);return f+h-1}_bytePosFor(t,e){let n=Math.floor(t/7),i=n+1;for(;!e&&this._bitArrays.length<i;)this._bitArrays.push(0);return n}_setBit(t){let e=this._bytePosFor(t,!1);this._bitArrays[e]|=1<<t-e*7}_unsetBit(t){let e=this._bytePosFor(t,!1);this._bitArrays[e]&=~(1<<t-e*7)}_setInternalPos(t,e,n,i){let o=this._data,s=[e,n];if(i)this._sortData(),o[t]=s;else{if(o.length)if(o[o.length-1][0]>=e)o.push(s);else if(o[0][0]<=e)o.unshift(s);else{let f=Math.round(o.length/2);this._data=o.slice(0,f).concat(s).concat(o.slice(f))}else this._data.push(s);this._changedData=!0,this._changedLength=!0}}_unsetInternalPos(t){this._data.splice(t,1)}_sortData(){this._changedData&&this._data.sort(Io),this._changedData=!1}bitField(){let t=[],e=8,n=0,i=0,o,s=this._bitArrays.slice();for(;s.length||n;){n===0&&(o=s.shift(),n=7);let a=Math.min(n,e),h=~(255<<a),u=o&h;i|=u<<8-e,o=o>>>a,n-=a,e-=a,(!e||!n&&!s.length)&&(t.push(i),i=0,e=8)}for(var f=t.length-1;f>0&&t[f]===0;f--)t.pop();return t}compactArray(){return this._sortData(),this._data.map(Fo)}};function Po(r,t){return r+En(t)}function En(r){let t=r;return t=t-(t>>1&1431655765),t=(t&858993459)+(t>>2&858993459),(t+(t>>4)&252645135)*16843009>>24}function Io(r,t){return r[0]-t[0]}function Fo(r){return r[1]}});var Vn=z((Ut,te)=>{(function(r,t){"use strict";var e={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(c){if(!Array.isArray(c)&&!ArrayBuffer.isView(c))return!1;for(var l=0;l<c.length;l++)if(!Number.isInteger(c[l])||c[l]<0||c[l]>255)return!1;return!0}function i(c,l){return(c&65535)*l+(((c>>>16)*l&65535)<<16)}function o(c,l){return c<<l|c>>>32-l}function s(c){return c^=c>>>16,c=i(c,2246822507),c^=c>>>13,c=i(c,3266489909),c^=c>>>16,c}function f(c,l){c=[c[0]>>>16,c[0]&65535,c[1]>>>16,c[1]&65535],l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535];var m=[0,0,0,0];return m[3]+=c[3]+l[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=c[2]+l[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=c[1]+l[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=c[0]+l[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function a(c,l){c=[c[0]>>>16,c[0]&65535,c[1]>>>16,c[1]&65535],l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535];var m=[0,0,0,0];return m[3]+=c[3]*l[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=c[2]*l[3],m[1]+=m[2]>>>16,m[2]&=65535,m[2]+=c[3]*l[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=c[1]*l[3],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=c[2]*l[2],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=c[3]*l[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=c[0]*l[3]+c[1]*l[2]+c[2]*l[1]+c[3]*l[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function h(c,l){return l%=64,l===32?[c[1],c[0]]:l<32?[c[0]<<l|c[1]>>>32-l,c[1]<<l|c[0]>>>32-l]:(l-=32,[c[1]<<l|c[0]>>>32-l,c[0]<<l|c[1]>>>32-l])}function u(c,l){return l%=64,l===0?c:l<32?[c[0]<<l|c[1]>>>32-l,c[1]<<l]:[c[1]<<l-32,0]}function p(c,l){return[c[0]^l[0],c[1]^l[1]]}function D(c){return c=p(c,[0,c[0]>>>1]),c=a(c,[4283543511,3981806797]),c=p(c,[0,c[0]>>>1]),c=a(c,[3301882366,444984403]),c=p(c,[0,c[0]>>>1]),c}e.x86.hash32=function(c,l){if(e.inputValidation&&!n(c))return t;l=l||0;for(var m=c.length%4,S=c.length-m,d=l,y=0,w=3432918353,b=461845907,_=0;_<S;_=_+4)y=c[_]|c[_+1]<<8|c[_+2]<<16|c[_+3]<<24,y=i(y,w),y=o(y,15),y=i(y,b),d^=y,d=o(d,13),d=i(d,5)+3864292196;switch(y=0,m){case 3:y^=c[_+2]<<16;case 2:y^=c[_+1]<<8;case 1:y^=c[_],y=i(y,w),y=o(y,15),y=i(y,b),d^=y}return d^=c.length,d=s(d),d>>>0},e.x86.hash128=function(c,l){if(e.inputValidation&&!n(c))return t;l=l||0;for(var m=c.length%16,S=c.length-m,d=l,y=l,w=l,b=l,_=0,v=0,g=0,L=0,X=597399067,Mt=2869860233,Ht=951274213,Ot=2716044179,B=0;B<S;B=B+16)_=c[B]|c[B+1]<<8|c[B+2]<<16|c[B+3]<<24,v=c[B+4]|c[B+5]<<8|c[B+6]<<16|c[B+7]<<24,g=c[B+8]|c[B+9]<<8|c[B+10]<<16|c[B+11]<<24,L=c[B+12]|c[B+13]<<8|c[B+14]<<16|c[B+15]<<24,_=i(_,X),_=o(_,15),_=i(_,Mt),d^=_,d=o(d,19),d+=y,d=i(d,5)+1444728091,v=i(v,Mt),v=o(v,16),v=i(v,Ht),y^=v,y=o(y,17),y+=w,y=i(y,5)+197830471,g=i(g,Ht),g=o(g,17),g=i(g,Ot),w^=g,w=o(w,15),w+=b,w=i(w,5)+2530024501,L=i(L,Ot),L=o(L,18),L=i(L,X),b^=L,b=o(b,13),b+=d,b=i(b,5)+850148119;switch(_=0,v=0,g=0,L=0,m){case 15:L^=c[B+14]<<16;case 14:L^=c[B+13]<<8;case 13:L^=c[B+12],L=i(L,Ot),L=o(L,18),L=i(L,X),b^=L;case 12:g^=c[B+11]<<24;case 11:g^=c[B+10]<<16;case 10:g^=c[B+9]<<8;case 9:g^=c[B+8],g=i(g,Ht),g=o(g,17),g=i(g,Ot),w^=g;case 8:v^=c[B+7]<<24;case 7:v^=c[B+6]<<16;case 6:v^=c[B+5]<<8;case 5:v^=c[B+4],v=i(v,Mt),v=o(v,16),v=i(v,Ht),y^=v;case 4:_^=c[B+3]<<24;case 3:_^=c[B+2]<<16;case 2:_^=c[B+1]<<8;case 1:_^=c[B],_=i(_,X),_=o(_,15),_=i(_,Mt),d^=_}return d^=c.length,y^=c.length,w^=c.length,b^=c.length,d+=y,d+=w,d+=b,y+=d,w+=d,b+=d,d=s(d),y=s(y),w=s(w),b=s(b),d+=y,d+=w,d+=b,y+=d,w+=d,b+=d,("00000000"+(d>>>0).toString(16)).slice(-8)+("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)},e.x64.hash128=function(c,l){if(e.inputValidation&&!n(c))return t;l=l||0;for(var m=c.length%16,S=c.length-m,d=[0,l],y=[0,l],w=[0,0],b=[0,0],_=[2277735313,289559509],v=[1291169091,658871167],g=0;g<S;g=g+16)w=[c[g+4]|c[g+5]<<8|c[g+6]<<16|c[g+7]<<24,c[g]|c[g+1]<<8|c[g+2]<<16|c[g+3]<<24],b=[c[g+12]|c[g+13]<<8|c[g+14]<<16|c[g+15]<<24,c[g+8]|c[g+9]<<8|c[g+10]<<16|c[g+11]<<24],w=a(w,_),w=h(w,31),w=a(w,v),d=p(d,w),d=h(d,27),d=f(d,y),d=f(a(d,[0,5]),[0,1390208809]),b=a(b,v),b=h(b,33),b=a(b,_),y=p(y,b),y=h(y,31),y=f(y,d),y=f(a(y,[0,5]),[0,944331445]);switch(w=[0,0],b=[0,0],m){case 15:b=p(b,u([0,c[g+14]],48));case 14:b=p(b,u([0,c[g+13]],40));case 13:b=p(b,u([0,c[g+12]],32));case 12:b=p(b,u([0,c[g+11]],24));case 11:b=p(b,u([0,c[g+10]],16));case 10:b=p(b,u([0,c[g+9]],8));case 9:b=p(b,[0,c[g+8]]),b=a(b,v),b=h(b,33),b=a(b,_),y=p(y,b);case 8:w=p(w,u([0,c[g+7]],56));case 7:w=p(w,u([0,c[g+6]],48));case 6:w=p(w,u([0,c[g+5]],40));case 5:w=p(w,u([0,c[g+4]],32));case 4:w=p(w,u([0,c[g+3]],24));case 3:w=p(w,u([0,c[g+2]],16));case 2:w=p(w,u([0,c[g+1]],8));case 1:w=p(w,[0,c[g]]),w=a(w,_),w=h(w,31),w=a(w,v),d=p(d,w)}return d=p(d,[0,c.length]),y=p(y,[0,c.length]),d=f(d,y),y=f(y,d),d=D(d),y=D(y),d=f(d,y),y=f(y,d),("00000000"+(d[0]>>>0).toString(16)).slice(-8)+("00000000"+(d[1]>>>0).toString(16)).slice(-8)+("00000000"+(y[0]>>>0).toString(16)).slice(-8)+("00000000"+(y[1]>>>0).toString(16)).slice(-8)},typeof Ut<"u"?(typeof te<"u"&&te.exports&&(Ut=te.exports=e),Ut.murmurHash3=e):typeof define=="function"&&define.amd?define([],function(){return e}):(e._murmurHash3=r.murmurHash3,e.noConflict=function(){return r.murmurHash3=e._murmurHash3,e._murmurHash3=t,e.noConflict=t,e},r.murmurHash3=e)})(Ut)});var Gn=z((Vc,qn)=>{qn.exports=Vn()});var vs={};C(vs,{importByteStream:()=>_s,importBytes:()=>xs,importDirectory:()=>bs,importFile:()=>nr,importer:()=>rr});async function*ut(r,t=1){let e=[];t<1&&(t=1);for await(let n of r)for(e.push(n);e.length>=t;)yield e.slice(0,t),e=e.slice(t);for(;e.length>0;)yield e.slice(0,t),e=e.slice(t)}async function*xt(r,t=1){for await(let e of ut(r,t)){let n=e.map(async i=>await i().then(o=>({ok:!0,value:o}),o=>({ok:!1,err:o})));for(let i=0;i<n.length;i++){let o=await n[i];if(o.ok)yield o.value;else throw o.err}}}var _e=O(_t(),1);var ye=O(ce(),1),Wr=O(Hr(),1),Jr=O(nt(),1),ge=O(me(),1),Kr=O($r(),1);function xi(){Jr.default._configure(),ye.default._configure(Wr.default),ge.default._configure(Kr.default)}xi();var Xr=["uint64","int64","sint64","fixed64","sfixed64"];function _i(r){for(let t of Xr){if(r[t]==null)continue;let e=r[t];r[t]=function(){return BigInt(e.call(this).toString())}}return r}function we(r){return _i(new ye.default(r))}function vi(r){for(let t of Xr){if(r[t]==null)continue;let e=r[t];r[t]=function(n){return e.call(this,n.toString())}}return r}function be(){return vi(ge.default.create())}function At(r,t){let e=we(r instanceof Uint8Array?r:r.subarray());return t.decode(e)}function kt(r,t){let e=be();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var lt;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(lt||(lt={}));function $t(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function xe(r){function t(i){if(r[i.toString()]==null)throw new Error("Invalid enum value");return r[i]}let e=function(o,s){let f=t(o);s.int32(f)},n=function(o){let s=o.int32();return t(s)};return $t("enum",lt.VARINT,e,n)}function St(r,t){return $t("message",lt.LENGTH_DELIMITED,r,t)}var q;(function(r){let t;(function(i){i.Raw="Raw",i.Directory="Directory",i.File="File",i.Metadata="Metadata",i.Symlink="Symlink",i.HAMTShard="HAMTShard"})(t=r.DataType||(r.DataType={}));let e;(function(i){i[i.Raw=0]="Raw",i[i.Directory=1]="Directory",i[i.File=2]="File",i[i.Metadata=3]="Metadata",i[i.Symlink=4]="Symlink",i[i.HAMTShard=5]="HAMTShard"})(e||(e={})),function(i){i.codec=()=>xe(e)}(t=r.DataType||(r.DataType={}));let n;r.codec=()=>(n==null&&(n=St((i,o,s={})=>{if(s.lengthDelimited!==!1&&o.fork(),i.Type!=null&&(o.uint32(8),r.DataType.codec().encode(i.Type,o)),i.Data!=null&&(o.uint32(18),o.bytes(i.Data)),i.filesize!=null&&(o.uint32(24),o.uint64(i.filesize)),i.blocksizes!=null)for(let f of i.blocksizes)o.uint32(32),o.uint64(f);i.hashType!=null&&(o.uint32(40),o.uint64(i.hashType)),i.fanout!=null&&(o.uint32(48),o.uint64(i.fanout)),i.mode!=null&&(o.uint32(56),o.uint32(i.mode)),i.mtime!=null&&(o.uint32(66),Wt.codec().encode(i.mtime,o)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={blocksizes:[]},f=o==null?i.len:i.pos+o;for(;i.pos<f;){let a=i.uint32();switch(a>>>3){case 1:s.Type=r.DataType.codec().decode(i);break;case 2:s.Data=i.bytes();break;case 3:s.filesize=i.uint64();break;case 4:s.blocksizes.push(i.uint64());break;case 5:s.hashType=i.uint64();break;case 6:s.fanout=i.uint64();break;case 7:s.mode=i.uint32();break;case 8:s.mtime=Wt.codec().decode(i,i.uint32());break;default:i.skipType(a&7);break}}return s})),n),r.encode=i=>kt(i,r.codec()),r.decode=i=>At(i,r.codec())})(q||(q={}));var Wt;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Seconds!=null&&(n.uint32(8),n.int64(e.Seconds)),e.FractionalNanoseconds!=null&&(n.uint32(21),n.fixed32(e.FractionalNanoseconds)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.Seconds=e.int64();break;case 2:i.FractionalNanoseconds=e.fixed32();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>kt(e,r.codec()),r.decode=e=>At(e,r.codec())})(Wt||(Wt={}));var Qr;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.MimeType!=null&&(n.uint32(10),n.string(e.MimeType)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.MimeType=e.string();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>kt(e,r.codec()),r.decode=e=>At(e,r.codec())})(Qr||(Qr={}));var Zr={Raw:"raw",Directory:"directory",File:"file",Metadata:"metadata",Symlink:"symlink",HAMTShard:"hamt-sharded-directory"},Bi=["directory","hamt-sharded-directory"],Yr=parseInt("0644",8),tn=parseInt("0755",8),P=class{static unmarshal(t){let e=q.decode(t),n=new P({type:Zr[e.Type!=null?e.Type.toString():"File"],data:e.Data,blockSizes:e.blocksizes,mode:e.mode,mtime:e.mtime!=null?{secs:e.mtime.Seconds??0n,nsecs:e.mtime.FractionalNanoseconds}:void 0});return n._originalMode=e.mode??0,n}constructor(t={type:"file"}){let{type:e,data:n,blockSizes:i,hashType:o,fanout:s,mtime:f,mode:a}=t;if(e!=null&&!Object.values(Zr).includes(e))throw(0,_e.default)(new Error("Type: "+e+" is not valid"),"ERR_INVALID_TYPE");this.type=e??"file",this.data=n,this.hashType=o,this.fanout=s,this.blockSizes=i??[],this._originalMode=0,this.mode=a,this.mtime=f}set mode(t){t==null?this._mode=this.isDirectory()?tn:Yr:this._mode=t&4095}get mode(){return this._mode}isDirectory(){return Bi.includes(this.type)}addBlockSize(t){this.blockSizes.push(t)}removeBlockSize(t){this.blockSizes.splice(t,1)}fileSize(){if(this.isDirectory())return 0n;let t=0n;return this.blockSizes.forEach(e=>{t+=e}),this.data!=null&&(t+=BigInt(this.data.length)),t}marshal(){let t;switch(this.type){case"raw":t=q.DataType.Raw;break;case"directory":t=q.DataType.Directory;break;case"file":t=q.DataType.File;break;case"metadata":t=q.DataType.Metadata;break;case"symlink":t=q.DataType.Symlink;break;case"hamt-sharded-directory":t=q.DataType.HAMTShard;break;default:throw(0,_e.default)(new Error(`Type: ${t} is not valid`),"ERR_INVALID_TYPE")}let e=this.data;(this.data==null||this.data.length===0)&&(e=void 0);let n;this.mode!=null&&(n=this._originalMode&4294963200|(this.mode??0),n===Yr&&!this.isDirectory()&&(n=void 0),n===tn&&this.isDirectory()&&(n=void 0));let i;return this.mtime!=null&&(i={Seconds:this.mtime.secs,FractionalNanoseconds:this.mtime.nsecs}),q.encode({Type:t,Data:e,filesize:this.isDirectory()?void 0:this.fileSize(),blocksizes:this.blockSizes,hashType:this.hashType,fanout:this.fanout,mode:n,mtime:i})}};var Ai=nn,en=128,ki=127,Si=~ki,Di=Math.pow(2,31);function nn(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Di;)t[e++]=r&255|en,r/=128;for(;r&Si;)t[e++]=r&255|en,r>>>=7;return t[e]=r|0,nn.bytes=e-n+1,t}var Li=ve,Ei=128,rn=127;function ve(r,n){var e=0,n=n||0,i=0,o=n,s,f=r.length;do{if(o>=f)throw ve.bytes=0,new RangeError("Could not decode varint");s=r[o++],e+=i<28?(s&rn)<<i:(s&rn)*Math.pow(2,i),i+=7}while(s>=Ei);return ve.bytes=o-n,e}var Ti=Math.pow(2,7),Ni=Math.pow(2,14),zi=Math.pow(2,21),Ci=Math.pow(2,28),Pi=Math.pow(2,35),Ii=Math.pow(2,42),Fi=Math.pow(2,49),Ui=Math.pow(2,56),Mi=Math.pow(2,63),Hi=function(r){return r<Ti?1:r<Ni?2:r<zi?3:r<Ci?4:r<Pi?5:r<Ii?6:r<Fi?7:r<Ui?8:r<Mi?9:10},Oi={encode:Ai,decode:Li,encodingLength:Hi},Ri=Oi,Dt=Ri;var Lt=(r,t=0)=>[Dt.decode(r,t),Dt.decode.bytes],dt=(r,t,e=0)=>(Dt.encode(r,t,e),t),pt=r=>Dt.encodingLength(r);var mt={};C(mt,{coerce:()=>H,empty:()=>on,equals:()=>Be,fromHex:()=>qi,fromString:()=>Ae,isBinary:()=>Gi,toHex:()=>Vi,toString:()=>ke});var on=new Uint8Array(0),Vi=r=>r.reduce((t,e)=>t+e.toString(16).padStart(2,"0"),""),qi=r=>{let t=r.match(/../g);return t?new Uint8Array(t.map(e=>parseInt(e,16))):on},Be=(r,t)=>{if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0},H=r=>{if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")},Gi=r=>r instanceof ArrayBuffer||ArrayBuffer.isView(r),Ae=r=>new TextEncoder().encode(r),ke=r=>new TextDecoder().decode(r);var ot=(r,t)=>{let e=t.byteLength,n=pt(r),i=n+pt(e),o=new Uint8Array(i+e);return dt(r,o,0),dt(e,o,n),o.set(t,i),new yt(r,e,t,o)},sn=r=>{let t=H(r),[e,n]=Lt(t),[i,o]=Lt(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new yt(e,i,s,t)},an=(r,t)=>{if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&Be(r.bytes,e.bytes)}},yt=class{constructor(t,e,n,i){this.code=t,this.size=e,this.digest=n,this.bytes=i}};var Te={};C(Te,{base58btc:()=>W,base58flickr:()=>Xi});function ji(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var i=0;i<r.length;i++){var o=r.charAt(i),s=o.charCodeAt(0);if(e[s]!==255)throw new TypeError(o+" is ambiguous");e[s]=i}var f=r.length,a=r.charAt(0),h=Math.log(f)/Math.log(256),u=Math.log(256)/Math.log(f);function p(l){if(l instanceof Uint8Array||(ArrayBuffer.isView(l)?l=new Uint8Array(l.buffer,l.byteOffset,l.byteLength):Array.isArray(l)&&(l=Uint8Array.from(l))),!(l instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(l.length===0)return"";for(var m=0,S=0,d=0,y=l.length;d!==y&&l[d]===0;)d++,m++;for(var w=(y-d)*u+1>>>0,b=new Uint8Array(w);d!==y;){for(var _=l[d],v=0,g=w-1;(_!==0||v<S)&&g!==-1;g--,v++)_+=256*b[g]>>>0,b[g]=_%f>>>0,_=_/f>>>0;if(_!==0)throw new Error("Non-zero carry");S=v,d++}for(var L=w-S;L!==w&&b[L]===0;)L++;for(var X=a.repeat(m);L<w;++L)X+=r.charAt(b[L]);return X}function D(l){if(typeof l!="string")throw new TypeError("Expected String");if(l.length===0)return new Uint8Array;var m=0;if(l[m]!==" "){for(var S=0,d=0;l[m]===a;)S++,m++;for(var y=(l.length-m)*h+1>>>0,w=new Uint8Array(y);l[m];){var b=e[l.charCodeAt(m)];if(b===255)return;for(var _=0,v=y-1;(b!==0||_<d)&&v!==-1;v--,_++)b+=f*w[v]>>>0,w[v]=b%256>>>0,b=b/256>>>0;if(b!==0)throw new Error("Non-zero carry");d=_,m++}if(l[m]!==" "){for(var g=y-d;g!==y&&w[g]===0;)g++;for(var L=new Uint8Array(S+(y-g)),X=S;g!==y;)L[X++]=w[g++];return L}}}function c(l){var m=D(l);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:p,decodeUnsafe:D,decode:c}}var $i=ji,Wi=$i,cn=Wi;var Se=class{constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},De=class{constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),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 fn(this,t)}},Le=class{constructor(t){this.decoders=t}or(t){return fn(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},fn=(r,t)=>new Le({...r.decoders||{[r.prefix]:r},...t.decoders||{[t.prefix]:t}}),Ee=class{constructor(t,e,n,i){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=i,this.encoder=new Se(t,e,n),this.decoder=new De(t,e,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},gt=({name:r,prefix:t,encode:e,decode:n})=>new Ee(r,t,e,n),et=({prefix:r,name:t,alphabet:e})=>{let{encode:n,decode:i}=cn(e,t);return gt({prefix:r,name:t,encode:n,decode:o=>H(i(o))})},Ji=(r,t,e,n)=>{let i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),f=0,a=0,h=0;for(let u=0;u<o;++u){let p=i[r[u]];if(p===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|p,f+=e,f>=8&&(f-=8,s[h++]=255&a>>f)}if(f>=e||255&a<<8-f)throw new SyntaxError("Unexpected end of data");return s},Ki=(r,t,e)=>{let n=t[t.length-1]==="=",i=(1<<e)-1,o="",s=0,f=0;for(let a=0;a<r.length;++a)for(f=f<<8|r[a],s+=8;s>e;)s-=e,o+=t[i&f>>s];if(s&&(o+=t[i&f<<e-s]),n)for(;o.length*e&7;)o+="=";return o},E=({name:r,prefix:t,bitsPerChar:e,alphabet:n})=>gt({prefix:t,name:r,encode(i){return Ki(i,n,e)},decode(i){return Ji(i,n,e,r)}});var W=et({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Xi=et({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ne={};C(Ne,{base32:()=>wt,base32hex:()=>to,base32hexpad:()=>ro,base32hexpadupper:()=>no,base32hexupper:()=>eo,base32pad:()=>Zi,base32padupper:()=>Yi,base32upper:()=>Qi,base32z:()=>io});var wt=E({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Qi=E({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Zi=E({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Yi=E({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),to=E({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),eo=E({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ro=E({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),no=E({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),io=E({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var un=(r,t)=>{let{bytes:e,version:n}=r;switch(n){case 0:return so(e,ze(r),t||W.encoder);default:return ao(e,ze(r),t||wt.encoder)}};var hn=new WeakMap,ze=r=>{let t=hn.get(r);if(t==null){let e=new Map;return hn.set(r,e),e}return t},k=class{constructor(t,e,n,i){this.code=e,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}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:e}=this;if(t!==Tt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==co)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return k.createV0(e)}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:e}=this.multihash,n=ot(t,e);return k.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 k.equals(this,t)}static equals(t,e){let n=e;return n&&t.code===n.code&&t.version===n.version&&an(t.multihash,n.multihash)}toString(t){return un(this,t)}toJSON(){return{"/":un(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof k)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:i,multihash:o,bytes:s}=e;return new k(n,i,o,s||ln(n,i,o.bytes))}else if(e[fo]===!0){let{version:n,multihash:i,code:o}=e,s=sn(i);return k.create(n,o,s)}else return null}static create(t,e,n){if(typeof e!="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(e!==Tt)throw new Error(`Version 0 CID must use dag-pb (code: ${Tt}) block encoding`);return new k(t,e,n,n.bytes)}case 1:{let i=ln(t,e,n.bytes);return new k(t,e,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return k.create(0,Tt,t)}static createV1(t,e){return k.create(1,t,e)}static decode(t){let[e,n]=k.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=k.inspectBytes(t),n=e.size-e.multihashSize,i=H(t.subarray(n,n+e.multihashSize));if(i.byteLength!==e.multihashSize)throw new Error("Incorrect length");let o=i.subarray(e.multihashSize-e.digestSize),s=new yt(e.multihashCode,e.digestSize,o,i);return[e.version===0?k.createV0(s):k.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[p,D]=Lt(t.subarray(e));return e+=D,p},i=n(),o=Tt;if(i===18?(i=0,e=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=e,f=n(),a=n(),h=e+a,u=h-s;return{version:i,codec:o,multihashCode:f,digestSize:a,multihashSize:u,size:h}}static parse(t,e){let[n,i]=oo(t,e),o=k.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ze(o).set(n,t),o}},oo=(r,t)=>{switch(r[0]){case"Q":{let e=t||W;return[W.prefix,e.decode(`${W.prefix}${r}`)]}case W.prefix:{let e=t||W;return[W.prefix,e.decode(r)]}case wt.prefix:{let e=t||wt;return[wt.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}},so=(r,t,e)=>{let{prefix:n}=e;if(n!==W.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let i=t.get(n);if(i==null){let o=e.encode(r).slice(1);return t.set(n,o),o}else return i},ao=(r,t,e)=>{let{prefix:n}=e,i=t.get(n);if(i==null){let o=e.encode(r);return t.set(n,o),o}else return i},Tt=112,co=18,ln=(r,t,e)=>{let n=pt(r),i=n+pt(t),o=new Uint8Array(i+e.byteLength);return dt(r,o,0),dt(t,o,n),o.set(e,i),o},fo=Symbol.for("@ipld/js-cid/CID");var zt={};C(zt,{code:()=>vo,createLink:()=>vn,createNode:()=>_n,decode:()=>Bo,encode:()=>U,name:()=>_o,prepare:()=>F,validate:()=>Ie});var uo=new TextDecoder;function Ce(r,t){let e=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(t>=r.length)throw new Error("protobuf: unexpected end of data");let i=r[t++];if(e+=n<28?(i&127)<<n:(i&127)*2**n,i<128)break}return[e,t]}function Kt(r,t){let e;[e,t]=Ce(r,t);let n=t+e;if(e<0||n<0)throw new Error("protobuf: invalid length");if(n>r.length)throw new Error("protobuf: unexpected end of data");return[r.subarray(t,n),n]}function dn(r,t){let e;return[e,t]=Ce(r,t),[e&7,e>>3,t]}function ho(r){let t={},e=r.length,n=0;for(;n<e;){let i,o;if([i,o,n]=dn(r,n),o===1){if(t.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Hash`);if(t.Name!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Name before Hash");if(t.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Hash");[t.Hash,n]=Kt(r,n)}else if(o===2){if(t.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Name`);if(t.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let s;[s,n]=Kt(r,n),t.Name=uo.decode(s)}else if(o===3){if(t.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(i!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Tsize`);[t.Tsize,n]=Ce(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${o}`)}if(n>e)throw new Error("protobuf: (PBLink) unexpected end of data");return t}function pn(r){let t=r.length,e=0,n,i=!1,o;for(;e<t;){let f,a;if([f,a,e]=dn(r,e),f!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${f}`);if(a===1){if(o)throw new Error("protobuf: (PBNode) duplicate Data section");[o,e]=Kt(r,e),n&&(i=!0)}else if(a===2){if(i)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let h;[h,e]=Kt(r,e),n.push(ho(h))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${a}`)}if(e>t)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return o&&(s.Data=o),s.Links=n||[],s}var yn=new TextEncoder,mn=2**32,lo=2**31;function po(r,t){let e=t.length;if(typeof r.Tsize=="number"){if(r.Tsize<0)throw new Error("Tsize cannot be negative");if(!Number.isSafeInteger(r.Tsize))throw new Error("Tsize too large for encoding");e=Nt(t,e,r.Tsize)-1,t[e]=24}if(typeof r.Name=="string"){let n=yn.encode(r.Name);e-=n.length,t.set(n,e),e=Nt(t,e,n.length)-1,t[e]=18}return r.Hash&&(e-=r.Hash.length,t.set(r.Hash,e),e=Nt(t,e,r.Hash.length)-1,t[e]=10),t.length-e}function gn(r){let t=yo(r),e=new Uint8Array(t),n=t;if(r.Data&&(n-=r.Data.length,e.set(r.Data,n),n=Nt(e,n,r.Data.length)-1,e[n]=10),r.Links)for(let i=r.Links.length-1;i>=0;i--){let o=po(r.Links[i],e.subarray(0,n));n-=o,n=Nt(e,n,o)-1,e[n]=18}return e}function mo(r){let t=0;if(r.Hash){let e=r.Hash.length;t+=1+e+bt(e)}if(typeof r.Name=="string"){let e=yn.encode(r.Name).length;t+=1+e+bt(e)}return typeof r.Tsize=="number"&&(t+=1+bt(r.Tsize)),t}function yo(r){let t=0;if(r.Data){let e=r.Data.length;t+=1+e+bt(e)}if(r.Links)for(let e of r.Links){let n=mo(e);t+=1+n+bt(n)}return t}function Nt(r,t,e){t-=bt(e);let n=t;for(;e>=lo;)r[t++]=e&127|128,e/=128;for(;e>=128;)r[t++]=e&127|128,e>>>=7;return r[t]=e,n}function bt(r){return r%2===0&&r++,Math.floor((go(r)+6)/7)}function go(r){let t=0;return r>=mn&&(r=Math.floor(r/mn),t=32),r>=1<<16&&(r>>>=16,t+=16),r>=1<<8&&(r>>>=8,t+=8),t+wo[r]}var wo=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];var bo=["Data","Links"],xo=["Hash","Name","Tsize"],Pe=new TextEncoder;function bn(r,t){if(r===t)return 0;let e=r.Name?Pe.encode(r.Name):[],n=t.Name?Pe.encode(t.Name):[],i=e.length,o=n.length;for(let s=0,f=Math.min(i,o);s<f;++s)if(e[s]!==n[s]){i=e[s],o=n[s];break}return i<o?-1:o<i?1:0}function wn(r,t){return!Object.keys(r).some(e=>!t.includes(e))}function xn(r){if(typeof r.asCID=="object"){let e=k.asCID(r);if(!e)throw new TypeError("Invalid DAG-PB form");return{Hash:e}}if(typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let t={};if(r.Hash){let e=k.asCID(r.Hash);try{e||(typeof r.Hash=="string"?e=k.parse(r.Hash):r.Hash instanceof Uint8Array&&(e=k.decode(r.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}e&&(t.Hash=e)}if(!t.Hash)throw new TypeError("Invalid DAG-PB form");return typeof r.Name=="string"&&(t.Name=r.Name),typeof r.Tsize=="number"&&(t.Tsize=r.Tsize),t}function F(r){if((r instanceof Uint8Array||typeof r=="string")&&(r={Data:r}),typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let t={};if(r.Data!==void 0)if(typeof r.Data=="string")t.Data=Pe.encode(r.Data);else if(r.Data instanceof Uint8Array)t.Data=r.Data;else throw new TypeError("Invalid DAG-PB form");if(r.Links!==void 0)if(Array.isArray(r.Links))t.Links=r.Links.map(xn),t.Links.sort(bn);else throw new TypeError("Invalid DAG-PB form");else t.Links=[];return t}function Ie(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!wn(r,bo))throw new TypeError("Invalid DAG-PB form (extraneous properties)");if(r.Data!==void 0&&!(r.Data instanceof Uint8Array))throw new TypeError("Invalid DAG-PB form (Data must be bytes)");if(!Array.isArray(r.Links))throw new TypeError("Invalid DAG-PB form (Links must be a list)");for(let t=0;t<r.Links.length;t++){let e=r.Links[t];if(!e||typeof e!="object"||Array.isArray(e)||e instanceof Uint8Array||e["/"]&&e["/"]===e.bytes)throw new TypeError("Invalid DAG-PB form (bad link)");if(!wn(e,xo))throw new TypeError("Invalid DAG-PB form (extraneous properties on link)");if(e.Hash===void 0)throw new TypeError("Invalid DAG-PB form (link must have a Hash)");if(e.Hash==null||!e.Hash["/"]||e.Hash["/"]!==e.Hash.bytes)throw new TypeError("Invalid DAG-PB form (link Hash must be a CID)");if(e.Name!==void 0&&typeof e.Name!="string")throw new TypeError("Invalid DAG-PB form (link Name must be a string)");if(e.Tsize!==void 0){if(typeof e.Tsize!="number"||e.Tsize%1!==0)throw new TypeError("Invalid DAG-PB form (link Tsize must be an integer)");if(e.Tsize<0)throw new TypeError("Invalid DAG-PB form (link Tsize cannot be negative)")}if(t>0&&bn(e,r.Links[t-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function _n(r,t=[]){return F({Data:r,Links:t})}function vn(r,t,e){return xn({Hash:e,Name:r,Tsize:t})}var _o="dag-pb",vo=112;function U(r){Ie(r);let t={};return r.Links&&(t.Links=r.Links.map(e=>{let n={};return e.Hash&&(n.Hash=e.Hash.bytes),e.Name!==void 0&&(n.Name=e.Name),e.Tsize!==void 0&&(n.Tsize=e.Tsize),n})),r.Data&&(t.Data=r.Data),gn(t)}function Bo(r){let t=pn(r),e={};return t.Data&&(e.Data=t.Data),t.Links&&(e.Links=t.Links.map(n=>{let i={};try{i.Hash=k.decode(n.Hash)}catch{}if(!i.Hash)throw new Error("Invalid Hash field found in link, expected CID");return n.Name!==void 0&&(i.Name=n.Name),n.Tsize!==void 0&&(i.Tsize=n.Tsize),i})),e}var Me={};C(Me,{sha256:()=>Ue,sha512:()=>Ao});var st=({name:r,code:t,encode:e})=>new Fe(r,t,e),Fe=class{constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?ot(this.code,e):e.then(n=>ot(this.code,n))}else throw Error("Unknown type, must be binary type")}};var An=r=>async t=>new Uint8Array(await crypto.subtle.digest(r,t)),Ue=st({name:"sha2-256",code:18,encode:An("SHA-256")}),Ao=st({name:"sha2-512",code:19,encode:An("SHA-512")});var G=async(r,t,e)=>{e.codec==null&&(e.codec=zt);let n=await Ue.digest(r),i=k.create(e.cidVersion,e.codec.code,n);return await t.put(i,r,e),i};var kn=async(r,t,e)=>{let n=new P({type:"directory",mtime:r.mtime,mode:r.mode}),i=U(F({Data:n.marshal()})),o=await G(i,t,e),s=r.path;return{cid:o,path:s,unixfs:n,size:BigInt(i.length),originalPath:r.originalPath,block:i}};var Ct={};C(Ct,{code:()=>Xt,decode:()=>Do,encode:()=>So,name:()=>ko});var ko="raw",Xt=85,So=r=>H(r),Do=r=>H(r);var Q=class extends Event{constructor(t,e){super(t),this.detail=e}};async function*Lo(r,t,e){let n=-1,i;for await(let o of xt(e.bufferImporter(r,t),e.blockWriteConcurrency)){if(n++,n===0){i={...o,single:!0};continue}else n===1&&i!=null&&(yield{...i,block:void 0,single:void 0},i=void 0);yield{...o,block:void 0}}i!=null&&(yield i)}function Sn(r){return r.single===!0}var Eo=(r,t,e)=>async function(i){if(i.length===1&&Sn(i[0])&&e.reduceSingleLeafToSelf){let u=i[0],p=u.block;return Sn(u)&&(r.mtime!==void 0||r.mode!==void 0)&&(u.unixfs=new P({type:"file",mtime:r.mtime,mode:r.mode,data:u.block}),p={Data:u.unixfs.marshal(),Links:[]},u.block=U(F(p)),u.cid=await G(u.block,t,{...e,cidVersion:e.cidVersion}),u.size=BigInt(u.block.length)),e.onProgress?.(new Q("unixfs:importer:progress:file:layout",{cid:u.cid,path:u.originalPath})),{cid:u.cid,path:r.path,unixfs:u.unixfs,size:u.size,originalPath:u.originalPath}}let o=new P({type:"file",mtime:r.mtime,mode:r.mode}),s=i.filter(u=>u.cid.code===Xt&&u.size>0||u.unixfs!=null&&u.unixfs.data==null&&u.unixfs.fileSize()>0n?!0:!!u.unixfs?.data?.length).map(u=>u.cid.code===Xt?(o.addBlockSize(u.size),{Name:"",Tsize:Number(u.size),Hash:u.cid}):(u.unixfs==null||u.unixfs.data==null?o.addBlockSize(u.unixfs?.fileSize()??0n):o.addBlockSize(BigInt(u.unixfs.data.length)),{Name:"",Tsize:Number(u.size),Hash:u.cid})),f={Data:o.marshal(),Links:s},a=U(F(f)),h=await G(a,t,e);return e.onProgress?.(new Q("unixfs:importer:progress:file:layout",{cid:h,path:r.originalPath})),{cid:h,path:r.path,unixfs:o,size:BigInt(a.length+f.Links.reduce((u,p)=>u+(p.Tsize??0),0)),originalPath:r.originalPath,block:a}},Dn=async(r,t,e)=>await e.layout(Lo(r,t,e),Eo(r,t,e));var He=O(_t(),1);function To(r){return Symbol.iterator in r}function No(r){return Symbol.asyncIterator in r}function zo(r){try{if(r instanceof Uint8Array)return async function*(){yield r}();if(To(r))return async function*(){yield*r}();if(No(r))return r}catch{throw(0,He.default)(new Error("Content was invalid"),"ERR_INVALID_CONTENT")}throw(0,He.default)(new Error("Content was invalid"),"ERR_INVALID_CONTENT")}function Ln(r){return async function*(e,n){for await(let i of e){let o;if(i.path!=null&&(o=i.path,i.path=i.path.split("/").filter(s=>s!=null&&s!==".").join("/")),Co(i)){let s={path:i.path,mtime:i.mtime,mode:i.mode,content:async function*(){let f=0n;for await(let a of r.chunker(r.chunkValidator(zo(i.content)))){let h=BigInt(a.byteLength);f+=h,r.onProgress?.(new Q("unixfs:importer:progress:file:read",{bytesRead:f,chunkSize:h,path:i.path})),yield a}}(),originalPath:o};yield async()=>await Dn(s,n,r)}else if(i.path!=null){let s={path:i.path,mtime:i.mtime,mode:i.mode,originalPath:o};yield async()=>await kn(s,n,r)}else throw new Error("Import candidate must have content or path or both")}}}function Co(r){return r.content!=null}var J=class{constructor(t,e){this.options=e??{},this.root=t.root,this.dir=t.dir,this.path=t.path,this.dirty=t.dirty,this.flat=t.flat,this.parent=t.parent,this.parentKey=t.parentKey,this.unixfs=t.unixfs,this.mode=t.mode,this.mtime=t.mtime}},Pt=k.parse("QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn"),It=k.parse("zdj7WbTaiJT1fgatdet9Ei9iDB5hdCxkbVyhyh8YTUnXMiwYi");var at=class extends J{constructor(t,e){super(t,e),this._children=new Map}async put(t,e){this.cid=void 0,this.size=void 0,this.nodeSize=void 0,this._children.set(t,e)}async get(t){return await Promise.resolve(this._children.get(t))}childCount(){return this._children.size}directChildrenCount(){return this.childCount()}onlyChild(){return this._children.values().next().value}async*eachChildSeries(){for(let[t,e]of this._children.entries())yield{key:t,child:e}}estimateNodeSize(){if(this.nodeSize!==void 0)return this.nodeSize;this.nodeSize=0;for(let[t,e]of this._children.entries())e.size!=null&&e.cid!=null&&(this.nodeSize+=t.length+(this.options.cidVersion===1?It.bytes.byteLength:Pt.bytes.byteLength));return this.nodeSize}async*flush(t){let e=[];for(let[a,h]of this._children.entries()){let u=h;if(h instanceof J)for await(let p of h.flush(t))u=p,yield p;u.size!=null&&u.cid!=null&&e.push({Name:a,Tsize:Number(u.size),Hash:u.cid})}let n=new P({type:"directory",mtime:this.mtime,mode:this.mode}),i={Data:n.marshal(),Links:e},o=U(F(i)),s=await G(o,t,this.options),f=o.length+i.Links.reduce((a,h)=>a+(h.Tsize==null?0:h.Tsize),0);this.cid=s,this.size=f,yield{cid:s,unixfs:n,path:this.path,size:BigInt(f)}}};var Mn=O(Nn(),1);var Oe={};C(Oe,{identity:()=>Uo});var Uo=gt({prefix:"\0",name:"identity",encode:r=>ke(r),decode:r=>Ae(r)});var Re={};C(Re,{base2:()=>Mo});var Mo=E({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ve={};C(Ve,{base8:()=>Ho});var Ho=E({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var qe={};C(qe,{base10:()=>Oo});var Oo=et({prefix:"9",name:"base10",alphabet:"0123456789"});var Ge={};C(Ge,{base16:()=>Ro,base16upper:()=>Vo});var Ro=E({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Vo=E({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var je={};C(je,{base36:()=>qo,base36upper:()=>Go});var qo=et({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Go=et({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var $e={};C($e,{base64:()=>jo,base64pad:()=>$o,base64url:()=>Wo,base64urlpad:()=>Jo});var jo=E({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),$o=E({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Wo=E({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Jo=E({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var We={};C(We,{base256emoji:()=>Yo});var zn=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}"),Ko=zn.reduce((r,t,e)=>(r[e]=t,r),[]),Xo=zn.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function Qo(r){return r.reduce((t,e)=>(t+=Ko[e],t),"")}function Zo(r){let t=[];for(let e of r){let n=Xo[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var Yo=gt({prefix:"\u{1F680}",name:"base256emoji",encode:Qo,decode:Zo});var Je={};C(Je,{identity:()=>rs});var Cn=0,ts="identity",Pn=H,es=r=>ot(Cn,Pn(r)),rs={code:Cn,name:ts,encode:Pn,digest:es};var dc=new TextEncoder,pc=new TextDecoder;var Ke={...Oe,...Re,...Ve,...qe,...Ge,...Ne,...je,...Te,...$e,...We},bc={...Me,...Je};function ct(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function Z(r=0){return globalThis.Buffer?.alloc!=null?ct(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function ft(r=0){return globalThis.Buffer?.allocUnsafe!=null?ct(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function Fn(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var In=Fn("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Xe=Fn("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=ft(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),is={utf8:In,"utf-8":In,hex:Ke.base16,latin1:Xe,ascii:Xe,binary:Xe,...Ke},Un=is;function Qt(r,t="utf8"){let e=Un[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?ct(globalThis.Buffer.from(r,"utf-8")):e.decoder.decode(`${e.prefix}${r}`)}var I=class{constructor(t,e,n=0){this._options=t,this._popCount=0,this._parent=e,this._posAtParent=n,this._children=new Mn.default,this.key=null}async put(t,e){let n=await this._findNewBucketAndPos(t);await n.bucket._putAt(n,t,e)}async get(t){let e=await this._findChild(t);if(e!=null)return e.value}async del(t){let e=await this._findPlace(t),n=e.bucket._at(e.pos);n!=null&&n.key===t&&e.bucket._delAt(e.pos)}leafCount(){return this._children.compactArray().reduce((e,n)=>n instanceof I?e+n.leafCount():e+1,0)}childrenCount(){return this._children.length}onlyChild(){return this._children.get(0)}*eachLeafSeries(){let t=this._children.compactArray();for(let e of t)e instanceof I?yield*e.eachLeafSeries():yield e}serialize(t,e){let n=[];return e(this._children.reduce((i,o,s)=>(o!=null&&(o instanceof I?i.push(o.serialize(t,e)):i.push(t(o,s))),i),n))}async asyncTransform(t,e){return await Hn(this,t,e)}toJSON(){return this.serialize(ss,as)}prettyPrint(){return JSON.stringify(this.toJSON(),null," ")}tableSize(){return Math.pow(2,this._options.bits)}async _findChild(t){let e=await this._findPlace(t),n=e.bucket._at(e.pos);if(!(n instanceof I)&&n!=null&&n.key===t)return n}async _findPlace(t){let e=this._options.hash(typeof t=="string"?Qt(t):t),n=await e.take(this._options.bits),i=this._children.get(n);return i instanceof I?await i._findPlace(e):{bucket:this,pos:n,hash:e,existingChild:i}}async _findNewBucketAndPos(t){let e=await this._findPlace(t);if(e.existingChild!=null&&e.existingChild.key!==t){let n=new I(this._options,e.bucket,e.pos);e.bucket._putObjectAt(e.pos,n);let i=await n._findPlace(e.existingChild.hash);return i.bucket._putAt(i,e.existingChild.key,e.existingChild.value),await n._findNewBucketAndPos(e.hash)}return e}_putAt(t,e,n){this._putObjectAt(t.pos,{key:e,value:n,hash:t.hash})}_putObjectAt(t,e){this._children.get(t)==null&&this._popCount++,this._children.set(t,e)}_delAt(t){if(t===-1)throw new Error("Invalid position");this._children.get(t)!=null&&this._popCount--,this._children.unset(t),this._level()}_level(){if(this._parent!=null&&this._popCount<=1)if(this._popCount===1){let t=this._children.find(os);if(t!=null&&!(t instanceof I)){let e=t.hash;e.untake(this._options.bits);let n={pos:this._posAtParent,hash:e,bucket:this._parent};this._parent._putAt(n,t.key,t.value)}}else this._parent._delAt(this._posAtParent)}_at(t){return this._children.get(t)}};function os(r){return!!r}function ss(r,t){return r.key}function as(r){return r}async function Hn(r,t,e){let n=[];for(let i of r._children.compactArray())if(i instanceof I)await Hn(i,t,e);else{let o=await t(i);n.push({bitField:r._children.bitField(),children:o})}return await e(n)}var cs=[255,254,252,248,240,224,192,128],fs=[1,3,7,15,31,63,127,255],Zt=class{constructor(t){this._value=t,this._currentBytePos=t.length-1,this._currentBitPos=7}availableBits(){return this._currentBitPos+1+this._currentBytePos*8}totalBits(){return this._value.length*8}take(t){let e=t,n=0;for(;e>0&&this._haveBits();){let i=this._value[this._currentBytePos],o=this._currentBitPos+1,s=Math.min(o,e),f=us(i,o-s,s);n=(n<<s)+f,e-=s,this._currentBitPos-=s,this._currentBitPos<0&&(this._currentBitPos=7,this._currentBytePos--)}return n}untake(t){for(this._currentBitPos+=t;this._currentBitPos>7;)this._currentBitPos-=8,this._currentBytePos+=1}_haveBits(){return this._currentBytePos>=0}};function us(r,t,e){let n=hs(t,e);return(r&n)>>>t}function hs(r,t){return cs[r]&fs[Math.min(t+r-1,7)]}function Ft(r,t){t==null&&(t=r.reduce((i,o)=>i+o.length,0));let e=ft(t),n=0;for(let i of r)e.set(i,n),n+=i.length;return ct(e)}function On(r){function t(e){return e instanceof Yt?e:new Yt(e,r)}return t}var Yt=class{constructor(t,e){if(!(t instanceof Uint8Array))throw new Error("can only hash Uint8Arrays");this._value=t,this._hashFn=e,this._depth=-1,this._availableBits=0,this._currentBufferIndex=0,this._buffers=[]}async take(t){let e=t;for(;this._availableBits<e;)await this._produceMoreBits();let n=0;for(;e>0;){let i=this._buffers[this._currentBufferIndex],o=Math.min(i.availableBits(),e),s=i.take(o);n=(n<<o)+s,e-=o,this._availableBits-=o,i.availableBits()===0&&this._currentBufferIndex++}return n}untake(t){let e=t;for(;e>0;){let n=this._buffers[this._currentBufferIndex],i=Math.min(n.totalBits()-n.availableBits(),e);n.untake(i),e-=i,this._availableBits+=i,this._currentBufferIndex>0&&n.totalBits()===n.availableBits()&&(this._depth--,this._currentBufferIndex--)}}async _produceMoreBits(){this._depth++;let t=this._depth>0?Ft([this._value,Uint8Array.from([this._depth])]):this._value,e=await this._hashFn(t),n=new Zt(e);this._buffers.push(n),this._availableBits+=n.availableBits()}};function Rn(r){if(r==null||r.hashFn==null)throw new Error("please define an options.hashFn");let t={bits:r.bits??8,hash:On(r.hashFn)};return new I(t)}var ee=O(Gn(),1);function ls(r){let t=new Array(4);for(let e=0;e<4;e++)t[e]=r&255,r=r>>8;return new Uint8Array(t)}var jc=st({name:"murmur3-32",code:35,encode:r=>ls(ee.default.x86.hash32(r))}),jn=st({name:"murmur3-128",code:34,encode:r=>mt.fromHex(ee.default.x64.hash128(r))}),$c=st({name:"murmur3-x64-64",code:34,encode:r=>mt.fromHex(ee.default.x64.hash128(r)).subarray(0,8)});async function ds(r){return(await jn.encode(r)).slice(0,8).reverse()}var $n=BigInt(34),Qe=class extends J{constructor(t,e){super(t,e),this._bucket=Rn({hashFn:ds,bits:8})}async put(t,e){this.cid=void 0,this.size=void 0,this.nodeSize=void 0,await this._bucket.put(t,e)}async get(t){return await this._bucket.get(t)}childCount(){return this._bucket.leafCount()}directChildrenCount(){return this._bucket.childrenCount()}onlyChild(){return this._bucket.onlyChild()}async*eachChildSeries(){for await(let{key:t,value:e}of this._bucket.eachLeafSeries())yield{key:t,child:e}}estimateNodeSize(){return this.nodeSize!==void 0?this.nodeSize:(this.nodeSize=Kn(this._bucket,this,this.options),this.nodeSize)}async*flush(t){for await(let e of Jn(this._bucket,t,this,this.options))yield{...e,path:this.path}}},Wn=Qe;async function*Jn(r,t,e,n){let i=r._children,o=[],s=0n;for(let c=0;c<i.length;c++){let l=i.get(c);if(l==null)continue;let m=c.toString(16).toUpperCase().padStart(2,"0");if(l instanceof I){let S;for await(let d of Jn(l,t,null,n))S=d;if(S==null)throw new Error("Could not flush sharded directory, no subshard found");o.push({Name:m,Tsize:Number(S.size),Hash:S.cid}),s+=S.size}else if(ps(l.value)){let S=l.value,d;for await(let w of S.flush(t))d=w,yield d;if(d==null)throw new Error("Did not flush dir");let y=m+l.key;o.push({Name:y,Tsize:Number(d.size),Hash:d.cid}),s+=d.size}else{let S=l.value;if(S.cid==null)continue;let d=m+l.key,y=S.size;o.push({Name:d,Tsize:Number(y),Hash:S.cid}),s+=BigInt(y??0)}}let f=Uint8Array.from(i.bitField().reverse()),a=new P({type:"hamt-sharded-directory",data:f,fanout:BigInt(r.tableSize()),hashType:$n,mtime:e?.mtime,mode:e?.mode}),h={Data:a.marshal(),Links:o},u=U(F(h)),p=await G(u,t,n),D=BigInt(u.byteLength)+s;yield{cid:p,unixfs:a,size:D}}function ps(r){return typeof r.flush=="function"}function Kn(r,t,e){let n=r._children,i=[];for(let a=0;a<n.length;a++){let h=n.get(a);if(h==null)continue;let u=a.toString(16).toUpperCase().padStart(2,"0");if(h instanceof I){let p=Kn(h,null,e);i.push({Name:u,Tsize:Number(p),Hash:e.cidVersion===0?Pt:It})}else if(typeof h.value.flush=="function"){let D=h.value.nodeSize();i.push({Name:u+h.key,Tsize:Number(D),Hash:e.cidVersion===0?Pt:It})}else{let p=h.value;if(p.cid==null)continue;let D=u+h.key,c=p.size;i.push({Name:D,Tsize:Number(c),Hash:p.cid})}}let o=Uint8Array.from(n.bitField().reverse()),s=new P({type:"hamt-sharded-directory",data:o,fanout:BigInt(r.tableSize()),hashType:$n,mtime:t?.mtime,mode:t?.mode});return U(F({Data:s.marshal(),Links:i})).length}async function Ze(r,t,e,n){let i=t;t instanceof at&&t.estimateNodeSize()>e&&(i=await ms(t,n));let o=i.parent;if(o!=null){if(i!==t){if(r!=null&&(r.parent=i),i.parentKey==null)throw new Error("No parent key found");await o.put(i.parentKey,i)}return await Ze(i,o,e,n)}return i}async function ms(r,t){let e=new Wn({root:r.root,dir:!0,parent:r.parent,parentKey:r.parentKey,path:r.path,dirty:r.dirty,flat:!1,mtime:r.mtime,mode:r.mode},t);for await(let{key:n,child:i}of r.eachChildSeries())await e.put(n,i);return e}var Xn=(r="")=>(r.trim().match(/([^\\/]|\\\/)+/g)??[]).filter(Boolean);async function ys(r,t,e){let n=Xn(r.path??""),i=n.length-1,o=t,s="";for(let f=0;f<n.length;f++){let a=n[f];s+=`${s!==""?"/":""}${a}`;let h=f===i;if(o.dirty=!0,o.cid=void 0,o.size=void 0,h)await o.put(a,r),t=await Ze(null,o,e.shardSplitThresholdBytes,e);else{let u=await o.get(a);(u==null||!(u instanceof J))&&(u=new at({root:!1,dir:!0,parent:o,parentKey:a,path:s,dirty:!0,flat:!0,mtime:u?.unixfs?.mtime,mode:u?.unixfs?.mode},e)),await o.put(a,u),o=u}}return t}async function*Qn(r,t){if(!(r instanceof J)){r.unixfs?.isDirectory()===!0&&(yield r);return}yield*r.flush(t)}function Zn(r){return async function*(e,n){let i=new at({root:!0,dir:!0,path:"",dirty:!0,flat:!0},r),o,s=!1;for await(let f of e){if(f==null)continue;let a=`${f.originalPath??""}`.split("/")[0];a!=null&&a!==""&&(o==null?(o=a,s=!0):o!==a&&(s=!1)),i=await ys(f,i,r),(f.unixfs==null||!f.unixfs.isDirectory())&&(yield f)}if(r.wrapWithDirectory||s&&i.childCount()>1)yield*Qn(i,n);else for await(let f of i.eachChildSeries())f!=null&&(yield*Qn(f.child,n))}}var Ye=O(_t(),1);var Yn=()=>async function*(t){for await(let e of t){if(e.length===void 0)throw(0,Ye.default)(new Error("Content was invalid"),"ERR_INVALID_CONTENT");if(typeof e=="string"||e instanceof String)yield Qt(e.toString());else if(Array.isArray(e))yield Uint8Array.from(e);else if(e instanceof Uint8Array)yield e;else throw(0,Ye.default)(new Error("Content was invalid"),"ERR_INVALID_CONTENT")}};function ti(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}var ri=Symbol.for("@achingbrain/uint8arraylist");function ei(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let i=e+n.byteLength;if(t<i)return{buf:n,index:t-e};e=i}throw new RangeError("index is out of bounds")}function re(r){return!!r?.[ri]}var K=class{constructor(...t){Object.defineProperty(this,ri,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(re(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(re(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=ei(this.bufs,t);return e.buf[e.index]}set(t,e){let n=ei(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(re(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:i}=this._subList(t,e);return Ft(n,i)}subarray(t,e){let{bufs:n,length:i}=this._subList(t,e);return n.length===1?n[0]:Ft(n,i)}sublist(t,e){let{bufs:n,length:i}=this._subList(t,e),o=new K;return o.length=i,o.bufs=n,o}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],f=i,a=f+s.byteLength;if(i=a,t>=a)continue;let h=t>=f&&t<a,u=e>f&&e<=a;if(h&&u){if(t===f&&e===a){n.push(s);break}let p=t-f;n.push(s.subarray(p,p+(e-t)));break}if(h){if(t===0){n.push(s);continue}n.push(s.subarray(t-f));continue}if(u){if(e===a){n.push(s);break}n.push(s.subarray(0,e-f));break}n.push(s)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!re(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let p=0;p<o;p++)s[p]=-1;for(let p=0;p<i;p++)s[n[p]]=p;let f=s,a=this.byteLength-n.byteLength,h=n.byteLength-1,u;for(let p=e;p<=a;p+=u){u=0;for(let D=h;D>=0;D--){let c=this.get(p+D);if(n[D]!==c){u=Math.max(1,D-f[c]);break}}if(u===0)return p}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=ft(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let i=Z(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,e,n),this.write(i,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let i=Z(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,e,n),this.write(i,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let i=Z(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,e,n),this.write(i,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=ft(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let i=Z(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,e,n),this.write(i,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let i=Z(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,e,n),this.write(i,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let i=Z(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,e,n),this.write(i,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let i=Z(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,e,n),this.write(i,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let i=Z(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,e,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof K)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!ti(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new K;return n.bufs=t,e==null&&(e=t.reduce((i,o)=>i+o.byteLength,0)),n.length=e,n}};var gs=262144,ni=(r={})=>{let t=r.chunkSize??gs;return async function*(n){let i=new K,o=0,s=!1;for await(let f of n)for(i.append(f),o+=f.length;o>=t;)if(yield i.slice(0,t),s=!0,t===i.length)i=new K,o=0;else{let a=new K;a.append(i.sublist(t)),i=a,o-=t}(!s||o>0)&&(yield i.subarray(0,o))}};var ws=174;function tr(r){let t=r?.maxChildrenPerNode??ws;return async function e(n,i){let o=[];for await(let s of ut(n,t))o.push(await i(s));return o.length>1?await e(o,i):o[0]}}function ii(r){return async function*(e,n){let i=0n;for await(let o of e.content)yield async()=>{let s,f={codec:zt,cidVersion:r.cidVersion,onProgress:r.onProgress};r.rawLeaves?(f.codec=Ct,f.cidVersion=1):(s=new P({type:r.leafType,data:o}),o=U({Data:s.marshal(),Links:[]}));let a=await G(o,n,f);return i+=BigInt(o.byteLength),r.onProgress?.(new Q("unixfs:importer:progress:file:write",{bytesWritten:i,cid:a,path:e.path})),{cid:a,unixfs:s,size:BigInt(o.length),block:o}}}}async function ne(r){for await(let t of r)return t}var er=O(_t(),1);async function*rr(r,t,e={}){let n;Symbol.asyncIterator in r||Symbol.iterator in r?n=r:n=[r];let i=e.wrapWithDirectory??!1,o=e.shardSplitThresholdBytes??262144,s=e.cidVersion??1,f=e.rawLeaves??!0,a=e.leafType??"file",h=e.fileImportConcurrency??50,u=e.blockWriteConcurrency??10,p=e.reduceSingleLeafToSelf??!0,D=e.chunker??ni(),c=e.chunkValidator??Yn(),l=e.dagBuilder??Ln({chunker:D,chunkValidator:c,wrapWithDirectory:i,layout:e.layout??tr(),bufferImporter:e.bufferImporter??ii({cidVersion:s,rawLeaves:f,leafType:a,onProgress:e.onProgress}),blockWriteConcurrency:u,reduceSingleLeafToSelf:p,cidVersion:s,onProgress:e.onProgress}),m=e.treeBuilder??Zn({wrapWithDirectory:i,shardSplitThresholdBytes:o,cidVersion:s,onProgress:e.onProgress});for await(let S of m(xt(l(n,t),h),t))yield{cid:S.cid,path:S.path,unixfs:S.unixfs,size:S.size}}async function nr(r,t,e={}){let n=await ne(rr([r],t,e));if(n==null)throw(0,er.default)(new Error("Nothing imported"),"ERR_INVALID_PARAMS");return n}async function bs(r,t,e={}){let n=await ne(rr([r],t,e));if(n==null)throw(0,er.default)(new Error("Nothing imported"),"ERR_INVALID_PARAMS");return n}async function xs(r,t,e={}){return await nr({content:r},t,e)}async function _s(r,t,e={}){return await nr({content:r},t,e)}return ui(vs);})();
3
3
  return IpfsUnixfsImporter}));
@@ -1,20 +1,25 @@
1
1
  import type { BufferImporter } from '../index.js';
2
- import type { Version } from 'multiformats/cid';
2
+ import type { CID, Version } from 'multiformats/cid';
3
3
  import type { ProgressOptions, ProgressEvent } from 'progress-events';
4
4
  /**
5
5
  * Passed to the onProgress callback while importing files
6
6
  */
7
- export interface ImportProgressData {
7
+ export interface ImportWriteProgress {
8
8
  /**
9
- * The size of the current chunk
9
+ * How many bytes we have written for this source so far - this may be
10
+ * bigger than the file size due to the DAG-PB wrappers of each block
10
11
  */
11
- bytes: number;
12
+ bytesWritten: bigint;
13
+ /**
14
+ * The CID of the block that has been written
15
+ */
16
+ cid: CID;
12
17
  /**
13
18
  * The path of the file being imported, if one was specified
14
19
  */
15
20
  path?: string;
16
21
  }
17
- export type BufferImportProgressEvents = ProgressEvent<'unixfs:importer:progress', ImportProgressData>;
22
+ export type BufferImportProgressEvents = ProgressEvent<'unixfs:importer:progress:file:write', ImportWriteProgress>;
18
23
  export interface BufferImporterOptions extends ProgressOptions<BufferImportProgressEvents> {
19
24
  cidVersion: Version;
20
25
  rawLeaves: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-importer.d.ts","sourceRoot":"","sources":["../../../src/dag-builder/buffer-importer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAErE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,0BAA0B,GACpC,aAAa,CAAC,0BAA0B,EAAE,kBAAkB,CAAC,CAAA;AAE/D,MAAM,WAAW,qBAAsB,SAAQ,eAAe,CAAC,0BAA0B,CAAC;IACxF,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAA;CACzB;AAED,wBAAgB,qBAAqB,CAAE,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAqCrF"}
1
+ {"version":3,"file":"buffer-importer.d.ts","sourceRoot":"","sources":["../../../src/dag-builder/buffer-importer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAErE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,GAAG,EAAE,GAAG,CAAA;IAER;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,0BAA0B,GACpC,aAAa,CAAC,qCAAqC,EAAE,mBAAmB,CAAC,CAAA;AAE3E,MAAM,WAAW,qBAAsB,SAAQ,eAAe,CAAC,0BAA0B,CAAC;IACxF,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAA;CACzB;AAED,wBAAgB,qBAAqB,CAAE,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAgDrF"}
@@ -5,9 +5,9 @@ import * as raw from 'multiformats/codecs/raw';
5
5
  import { CustomProgressEvent } from 'progress-events';
6
6
  export function defaultBufferImporter(options) {
7
7
  return async function* bufferImporter(file, blockstore) {
8
+ let bytesWritten = 0n;
8
9
  for await (let block of file.content) {
9
10
  yield async () => {
10
- options.onProgress?.(new CustomProgressEvent('unixfs:importer:progress', { bytes: block.byteLength, path: file.path }));
11
11
  let unixfs;
12
12
  const opts = {
13
13
  codec: dagPb,
@@ -28,8 +28,15 @@ export function defaultBufferImporter(options) {
28
28
  Links: []
29
29
  });
30
30
  }
31
+ const cid = await persist(block, blockstore, opts);
32
+ bytesWritten += BigInt(block.byteLength);
33
+ options.onProgress?.(new CustomProgressEvent('unixfs:importer:progress:file:write', {
34
+ bytesWritten,
35
+ cid,
36
+ path: file.path
37
+ }));
31
38
  return {
32
- cid: await persist(block, blockstore, opts),
39
+ cid,
33
40
  unixfs,
34
41
  size: BigInt(block.length),
35
42
  block
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-importer.js","sourceRoot":"","sources":["../../../src/dag-builder/buffer-importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAA;AAG9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AA2BrD,MAAM,UAAU,qBAAqB,CAAE,OAA8B;IACnE,OAAO,KAAK,SAAU,CAAC,CAAC,cAAc,CAAE,IAAI,EAAE,UAAU;QACtD,IAAI,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACpC,MAAM,KAAK,IAAI,EAAE;gBACf,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAqB,0BAA0B,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC3I,IAAI,MAAM,CAAA;gBAEV,MAAM,IAAI,GAAmB;oBAC3B,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAA;gBAED,IAAI,OAAO,CAAC,SAAS,EAAE;oBACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;oBAChB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;iBACpB;qBAAM;oBACL,MAAM,GAAG,IAAI,MAAM,CAAC;wBAClB,IAAI,EAAE,OAAO,CAAC,QAAQ;wBACtB,IAAI,EAAE,KAAK;qBACZ,CAAC,CAAA;oBAEF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;wBACnB,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;wBACtB,KAAK,EAAE,EAAE;qBACV,CAAC,CAAA;iBACH;gBAED,OAAO;oBACL,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC;oBAC3C,MAAM;oBACN,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC1B,KAAK;iBACN,CAAA;YACH,CAAC,CAAA;SACF;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"buffer-importer.js","sourceRoot":"","sources":["../../../src/dag-builder/buffer-importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAA;AAG9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAiCrD,MAAM,UAAU,qBAAqB,CAAE,OAA8B;IACnE,OAAO,KAAK,SAAU,CAAC,CAAC,cAAc,CAAE,IAAI,EAAE,UAAU;QACtD,IAAI,YAAY,GAAG,EAAE,CAAA;QAErB,IAAI,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACpC,MAAM,KAAK,IAAI,EAAE;gBACf,IAAI,MAAM,CAAA;gBAEV,MAAM,IAAI,GAAmB;oBAC3B,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAA;gBAED,IAAI,OAAO,CAAC,SAAS,EAAE;oBACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;oBAChB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;iBACpB;qBAAM;oBACL,MAAM,GAAG,IAAI,MAAM,CAAC;wBAClB,IAAI,EAAE,OAAO,CAAC,QAAQ;wBACtB,IAAI,EAAE,KAAK;qBACZ,CAAC,CAAA;oBAEF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;wBACnB,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;wBACtB,KAAK,EAAE,EAAE;qBACV,CAAC,CAAA;iBACH;gBAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;gBAElD,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;gBAExC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAsB,qCAAqC,EAAE;oBACvG,YAAY;oBACZ,GAAG;oBACH,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CAAC,CAAA;gBAEH,OAAO;oBACL,GAAG;oBACH,MAAM;oBACN,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC1B,KAAK;iBACN,CAAA;YACH,CAAC,CAAA;SACF;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import type { Directory, InProgressImportResult, WritableStorage } from '../index.js';
2
2
  import type { Version } from 'multiformats/cid';
3
- import type { ProgressOptions } from 'progress-events';
4
- export interface DirBuilderOptions extends ProgressOptions {
3
+ export interface DirBuilderOptions {
5
4
  cidVersion: Version;
6
5
  signal?: AbortSignal;
7
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dir.d.ts","sourceRoot":"","sources":["../../../src/dag-builder/dir.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,eAAO,MAAM,UAAU,QAAe,SAAS,cAAc,eAAe,WAAW,iBAAiB,KAAG,QAAQ,sBAAsB,CAmBxI,CAAA"}
1
+ {"version":3,"file":"dir.d.ts","sourceRoot":"","sources":["../../../src/dag-builder/dir.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,eAAO,MAAM,UAAU,QAAe,SAAS,cAAc,eAAe,WAAW,iBAAiB,KAAG,QAAQ,sBAAsB,CAmBxI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"dir.js","sourceRoot":"","sources":["../../../src/dag-builder/dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAU9C,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,GAAc,EAAE,UAA2B,EAAE,OAA0B,EAAmC,EAAE;IAC3I,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IAErB,OAAO;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,KAAK;KACN,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"dir.js","sourceRoot":"","sources":["../../../src/dag-builder/dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAS9C,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,GAAc,EAAE,UAA2B,EAAE,OAA0B,EAAmC,EAAE;IAC3I,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IAErB,OAAO;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,KAAK;KACN,CAAA;AACH,CAAC,CAAA"}
@@ -1,12 +1,23 @@
1
- import type { BufferImporter, File, InProgressImportResult, WritableStorage } from '../index.js';
1
+ import type { BufferImporter, File, InProgressImportResult, WritableStorage, ImporterProgressEvents } from '../index.js';
2
2
  import type { FileLayout } from '../layout/index.js';
3
- import type { Version } from 'multiformats/cid';
4
- import type { ProgressOptions } from 'progress-events';
3
+ import type { CID, Version } from 'multiformats/cid';
4
+ import type { ProgressOptions, ProgressEvent } from 'progress-events';
5
5
  interface BuildFileBatchOptions {
6
6
  bufferImporter: BufferImporter;
7
7
  blockWriteConcurrency: number;
8
8
  }
9
- interface ReduceOptions extends ProgressOptions {
9
+ export interface LayoutLeafProgress {
10
+ /**
11
+ * The CID of the leaf being written
12
+ */
13
+ cid: CID;
14
+ /**
15
+ * The path of the file being imported, if one was specified
16
+ */
17
+ path?: string;
18
+ }
19
+ export type ReducerProgressEvents = ProgressEvent<'unixfs:importer:progress:file:layout', LayoutLeafProgress>;
20
+ interface ReduceOptions extends ProgressOptions<ImporterProgressEvents> {
10
21
  reduceSingleLeafToSelf: boolean;
11
22
  cidVersion: Version;
12
23
  signal?: AbortSignal;
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/dag-builder/file.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAA;AACzH,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,UAAU,qBAAqB;IAC7B,cAAc,EAAE,cAAc,CAAA;IAC9B,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAuCD,UAAU,aAAc,SAAQ,eAAe;IAC7C,sBAAsB,EAAE,OAAO,CAAA;IAC/B,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAyGD,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB,EAAE,aAAa;IAC9E,MAAM,EAAE,UAAU,CAAA;CACnB;AAED,eAAO,MAAM,WAAW,SAAgB,IAAI,SAAS,eAAe,WAAW,kBAAkB,KAAG,QAAQ,sBAAsB,CAEjI,CAAA"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/dag-builder/file.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE,eAAe,EAA2B,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACjJ,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAErE,UAAU,qBAAqB;IAC7B,cAAc,EAAE,cAAc,CAAA;IAC9B,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAuCD,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,GAAG,EAAE,GAAG,CAAA;IAER;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,qBAAqB,GAC/B,aAAa,CAAC,sCAAsC,EAAE,kBAAkB,CAAC,CAAA;AAE3E,UAAU,aAAc,SAAQ,eAAe,CAAC,sBAAsB,CAAC;IACrE,sBAAsB,EAAE,OAAO,CAAA;IAC/B,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAsHD,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB,EAAE,aAAa;IAC9E,MAAM,EAAE,UAAU,CAAA;CACnB;AAED,eAAO,MAAM,WAAW,SAAgB,IAAI,SAAS,eAAe,WAAW,kBAAkB,KAAG,QAAQ,sBAAsB,CAEjI,CAAA"}
@@ -3,6 +3,7 @@ import { persist } from '../utils/persist.js';
3
3
  import { encode, prepare } from '@ipld/dag-pb';
4
4
  import parallelBatch from 'it-parallel-batch';
5
5
  import * as rawCodec from 'multiformats/codecs/raw';
6
+ import { CustomProgressEvent } from 'progress-events';
6
7
  async function* buildFileBatch(file, blockstore, options) {
7
8
  let count = -1;
8
9
  let previous;
@@ -42,6 +43,7 @@ const reduce = (file, blockstore, options) => {
42
43
  const reducer = async function (leaves) {
43
44
  if (leaves.length === 1 && isSingleBlockImport(leaves[0]) && options.reduceSingleLeafToSelf) {
44
45
  const leaf = leaves[0];
46
+ let node = leaf.block;
45
47
  if (isSingleBlockImport(leaf) && (file.mtime !== undefined || file.mode !== undefined)) {
46
48
  // only one leaf node which is a raw leaf - we have metadata so convert it into a
47
49
  // UnixFS entry otherwise we'll have nowhere to store the metadata
@@ -51,13 +53,18 @@ const reduce = (file, blockstore, options) => {
51
53
  mode: file.mode,
52
54
  data: leaf.block
53
55
  });
54
- leaf.block = encode(prepare({ Data: leaf.unixfs.marshal() }));
56
+ node = { Data: leaf.unixfs.marshal(), Links: [] };
57
+ leaf.block = encode(prepare(node));
55
58
  leaf.cid = await persist(leaf.block, blockstore, {
56
59
  ...options,
57
60
  cidVersion: options.cidVersion
58
61
  });
59
62
  leaf.size = BigInt(leaf.block.length);
60
63
  }
64
+ options.onProgress?.(new CustomProgressEvent('unixfs:importer:progress:file:layout', {
65
+ cid: leaf.cid,
66
+ path: leaf.originalPath
67
+ }));
61
68
  return {
62
69
  cid: leaf.cid,
63
70
  path: file.path,
@@ -112,6 +119,10 @@ const reduce = (file, blockstore, options) => {
112
119
  };
113
120
  const block = encode(prepare(node));
114
121
  const cid = await persist(block, blockstore, options);
122
+ options.onProgress?.(new CustomProgressEvent('unixfs:importer:progress:file:layout', {
123
+ cid,
124
+ path: file.originalPath
125
+ }));
115
126
  return {
116
127
  cid,
117
128
  path: file.path,
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/dag-builder/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,aAAa,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AAWnD,KAAK,SAAU,CAAC,CAAC,cAAc,CAAE,IAAU,EAAE,UAA2B,EAAE,OAA8B;IACtG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;IACd,IAAI,QAA6C,CAAA;IAEjD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE;QAChH,KAAK,EAAE,CAAA;QAEP,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,sDAAsD;YACtD,QAAQ,GAAG;gBACT,GAAG,KAAK;gBACR,MAAM,EAAE,IAAI;aACb,CAAA;YAED,SAAQ;SACT;aAAM,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE;YAC5C,yEAAyE;YACzE,MAAM;gBACJ,GAAG,QAAQ;gBACX,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,SAAS;aAClB,CAAA;YACD,QAAQ,GAAG,SAAS,CAAA;SACrB;QAED,6DAA6D;QAC7D,MAAM;YACJ,GAAG,KAAK;YACR,KAAK,EAAE,SAAS;SACjB,CAAA;KACF;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,MAAM,QAAQ,CAAA;KACf;AACH,CAAC;AAQD,SAAS,mBAAmB,CAAE,MAAW;IACvC,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI,CAAA;AAC/B,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,IAAU,EAAE,UAA2B,EAAE,OAAsB,EAAW,EAAE;IAC1F,MAAM,OAAO,GAAY,KAAK,WAAW,MAAM;QAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,sBAAsB,EAAE;YAC3F,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YAEtB,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE;gBACtF,iFAAiF;gBACjF,kEAAkE;gBAClE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;oBACvB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,KAAK;iBACjB,CAAC,CAAA;gBAEF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;gBAE7D,IAAI,CAAC,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE;oBAC/C,GAAG,OAAO;oBACV,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAC,CAAA;gBACF,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;aACtC;YAED,OAAO;gBACL,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAA;SACF;QAED,8CAA8C;QAC9C,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC;YACnB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAa,MAAM;aAC3B,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;gBACpD,OAAO,IAAI,CAAA;aACZ;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;gBACtF,OAAO,IAAI,CAAA;aACZ;YAED,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAC3C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;gBACnC,wBAAwB;gBACxB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAEzB,OAAO;oBACL,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,IAAI,EAAE,IAAI,CAAC,GAAG;iBACf,CAAA;aACF;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;gBACvD,+BAA+B;gBAC/B,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;aAC9C;iBAAM;gBACL,oCAAoC;gBACpC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;aAChD;YAED,OAAO;gBACL,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,IAAI,CAAC,GAAG;aACf,CAAA;QACH,CAAC,CAAC,CAAA;QAEJ,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;YACjB,KAAK,EAAE,KAAK;SACb,CAAA;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACnC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAErD,OAAO;YACL,GAAG;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzF,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK;SACN,CAAA;IACH,CAAC,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAMD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,IAAU,EAAE,KAAsB,EAAE,OAA2B,EAAmC,EAAE;IACpI,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;AACjG,CAAC,CAAA"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/dag-builder/file.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,28 @@
1
1
  import { DirBuilderOptions } from './dir.js';
2
2
  import { FileBuilderOptions } from './file.js';
3
- import type { ImportCandidate, InProgressImportResult, WritableStorage } from '../index.js';
3
+ import type { ImportCandidate, ImporterProgressEvents, InProgressImportResult, WritableStorage } from '../index.js';
4
4
  import type { ChunkValidator } from './validate-chunks.js';
5
5
  import type { Chunker } from '../chunker/index.js';
6
- export interface DagBuilderOptions extends FileBuilderOptions, DirBuilderOptions {
6
+ import type { ProgressEvent, ProgressOptions } from 'progress-events';
7
+ /**
8
+ * Passed to the onProgress callback while importing files
9
+ */
10
+ export interface ImportReadProgress {
11
+ /**
12
+ * How many bytes we have read from this source so far
13
+ */
14
+ bytesRead: bigint;
15
+ /**
16
+ * The size of the current chunk
17
+ */
18
+ chunkSize: bigint;
19
+ /**
20
+ * The path of the file being imported, if one was specified
21
+ */
22
+ path?: string;
23
+ }
24
+ export type DagBuilderProgressEvents = ProgressEvent<'unixfs:importer:progress:file:read', ImportReadProgress>;
25
+ export interface DagBuilderOptions extends FileBuilderOptions, DirBuilderOptions, ProgressOptions<ImporterProgressEvents> {
7
26
  chunker: Chunker;
8
27
  chunkValidator: ChunkValidator;
9
28
  wrapWithDirectory: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dag-builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAe,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE3D,OAAO,KAAK,EAAkC,eAAe,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC3H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AA8BlD,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB,EAAE,iBAAiB;IAC9E,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAA;AAE7F,MAAM,WAAW,UAAU;IACzB,CAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,eAAe,GAAG,aAAa,CAAC,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAA;CAClH;AAED,wBAAgB,iBAAiB,CAAE,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAqCzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dag-builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAe,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE3D,OAAO,KAAK,EAAkC,eAAe,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACnJ,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGrE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,wBAAwB,GAClC,aAAa,CAAC,oCAAoC,EAAE,kBAAkB,CAAC,CAAA;AA8BzE,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,CAAC,sBAAsB,CAAC;IACvH,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAA;AAE7F,MAAM,WAAW,UAAU;IACzB,CAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,eAAe,GAAG,aAAa,CAAC,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAA;CAClH;AAED,wBAAgB,iBAAiB,CAAE,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAoDzE"}
@@ -1,6 +1,7 @@
1
1
  import { dirBuilder } from './dir.js';
2
2
  import { fileBuilder } from './file.js';
3
3
  import errCode from 'err-code';
4
+ import { CustomProgressEvent } from 'progress-events';
4
5
  function isIterable(thing) {
5
6
  return Symbol.iterator in thing;
6
7
  }
@@ -44,7 +45,19 @@ export function defaultDagBuilder(options) {
44
45
  path: entry.path,
45
46
  mtime: entry.mtime,
46
47
  mode: entry.mode,
47
- content: options.chunker(options.chunkValidator(contentAsAsyncIterable(entry.content))),
48
+ content: (async function* () {
49
+ let bytesRead = 0n;
50
+ for await (const chunk of options.chunker(options.chunkValidator(contentAsAsyncIterable(entry.content)))) {
51
+ const currentChunkSize = BigInt(chunk.byteLength);
52
+ bytesRead += currentChunkSize;
53
+ options.onProgress?.(new CustomProgressEvent('unixfs:importer:progress:file:read', {
54
+ bytesRead,
55
+ chunkSize: currentChunkSize,
56
+ path: entry.path
57
+ }));
58
+ yield chunk;
59
+ }
60
+ })(),
48
61
  originalPath
49
62
  };
50
63
  yield async () => await fileBuilder(file, blockstore, options);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dag-builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,WAAW,EAAsB,MAAM,WAAW,CAAA;AAC3D,OAAO,OAAO,MAAM,UAAU,CAAA;AAK9B,SAAS,UAAU,CAAE,KAAU;IAC7B,OAAO,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAA;AACjC,CAAC;AAED,SAAS,eAAe,CAAE,KAAU;IAClC,OAAO,MAAM,CAAC,aAAa,IAAI,KAAK,CAAA;AACtC,CAAC;AAED,SAAS,sBAAsB,CAAE,OAAsE;IACrG,IAAI;QACF,IAAI,OAAO,YAAY,UAAU,EAAE;YACjC,OAAO,CAAC,KAAK,SAAU,CAAC;gBACtB,MAAM,OAAO,CAAA;YACf,CAAC,EAAE,CAAC,CAAA;SACL;aAAM,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;YAC9B,OAAO,CAAC,KAAK,SAAU,CAAC;gBACtB,KAAM,CAAC,CAAC,OAAO,CAAA;YACjB,CAAC,EAAE,CAAC,CAAA;SACL;aAAM,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;YACnC,OAAO,OAAO,CAAA;SACf;KACF;IAAC,MAAM;QACN,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC,CAAA;KACvE;IAED,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC,CAAA;AACxE,CAAC;AAcD,MAAM,UAAU,iBAAiB,CAAE,OAA0B;IAC3D,OAAO,KAAK,SAAU,CAAC,CAAC,UAAU,CAAE,MAAM,EAAE,UAAU;QACpD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE;YAChC,IAAI,YAAgC,CAAA;YAEpC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;gBACtB,YAAY,GAAG,KAAK,CAAC,IAAI,CAAA;gBACzB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;qBACpB,KAAK,CAAC,GAAG,CAAC;qBACV,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC;qBAC5C,IAAI,CAAC,GAAG,CAAC,CAAA;aACb;YAED,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;gBAC1B,MAAM,IAAI,GAAS;oBACjB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBACvF,YAAY;iBACb,CAAA;gBAED,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;aAC/D;iBAAM,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC7B,MAAM,GAAG,GAAc;oBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,YAAY;iBACb,CAAA;gBAED,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;aAC7D;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;aACtE;SACF;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAE,KAAU;IAClC,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dag-builder/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DAGBuilder } from './dag-builder/index.js';
1
+ import { DAGBuilder, DagBuilderProgressEvents } from './dag-builder/index.js';
2
2
  import type { UnixFS, Mtime } from 'ipfs-unixfs';
3
3
  import type { CID, Version as CIDVersion } from 'multiformats/cid';
4
4
  import type { Blockstore } from 'interface-blockstore';
@@ -8,6 +8,7 @@ import { FileLayout } from './layout/index.js';
8
8
  import { BufferImportProgressEvents } from './dag-builder/buffer-importer.js';
9
9
  import type { AwaitIterable } from 'interface-store';
10
10
  import type { ProgressOptions } from 'progress-events';
11
+ import type { ReducerProgressEvents } from './dag-builder/file.js';
11
12
  export type ByteStream = AwaitIterable<Uint8Array>;
12
13
  export type ImportContent = ByteStream | Uint8Array;
13
14
  export type WritableStorage = Pick<Blockstore, 'put'>;
@@ -63,11 +64,11 @@ export interface TreeBuilder {
63
64
  export interface BufferImporter {
64
65
  (file: File, blockstore: WritableStorage): AsyncIterable<() => Promise<BufferImporterResult>>;
65
66
  }
66
- export type ImportProgressEvents = BufferImportProgressEvents;
67
+ export type ImporterProgressEvents = BufferImportProgressEvents | DagBuilderProgressEvents | ReducerProgressEvents;
67
68
  /**
68
69
  * Options to control the importer's behaviour
69
70
  */
70
- export interface ImporterOptions extends ProgressOptions<ImportProgressEvents> {
71
+ export interface ImporterOptions extends ProgressOptions<ImporterProgressEvents> {
71
72
  /**
72
73
  * When a file would span multiple DAGNodes, if this is true the leaf nodes
73
74
  * will not be wrapped in `UnixFS` protobufs and will instead contain the
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAc,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAItD,OAAO,EAAkB,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,QAAQ,EAAc,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAA8B,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACpG,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,OAAO,MAAM,UAAU,CAAA;AA8L9B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,SAAU,CAAC,CAAC,QAAQ,CAAE,MAA6B,EAAE,UAA2B,EAAE,UAA2B,EAAE;IACzH,IAAI,UAA4G,CAAA;IAEhH,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,EAAE;QAC/D,UAAU,GAAG,MAAM,CAAA;KACpB;SAAM;QACL,UAAU,GAAG,CAAC,MAAM,CAAC,CAAA;KACtB;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAA;IAC5D,MAAM,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,IAAI,MAAM,CAAA;IAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAA;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAA;IAC3C,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAA;IACjE,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAA;IACjE,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,IAAI,CAAA;IAErE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE,CAAA;IAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,qBAAqB,EAAE,CAAA;IACxE,MAAM,QAAQ,GAAe,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;QACnE,OAAO;QACP,cAAc;QACd,iBAAiB;QACjB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE;QACpC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,qBAAqB,CAAC;YAC9D,UAAU;YACV,SAAS;YACT,QAAQ;YACR,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QACF,qBAAqB;QACrB,sBAAsB;QACtB,UAAU;QACV,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAA;IACF,MAAM,SAAS,GAAgB,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC;QACvE,iBAAiB;QACjB,wBAAwB;QACxB,UAAU;QACV,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAA;IAEF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,qBAAqB,CAAC,EAAE,UAAU,CAAC,EAAE;QACvH,MAAM;YACJ,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAA;KACF;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,OAAsB,EAAE,UAA2B,EAAE,UAA2B,EAAE;IAClH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;IAEpE,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,CAAA;KACnE;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAE,OAA2B,EAAE,UAA2B,EAAE,UAA2B,EAAE;IAC5H,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;IAEpE,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,CAAA;KACnE;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,GAAkB,EAAE,UAA2B,EAAE,UAA2B,EAAE;IAC/G,OAAO,MAAM,UAAU,CAAC;QACtB,OAAO,EAAE,GAAG;KACb,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAE,IAAgB,EAAE,UAA2B,EAAE,UAA2B,EAAE;IAClH,OAAO,MAAM,UAAU,CAAC;QACtB,OAAO,EAAE,IAAI;KACd,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,14 @@
3
3
  "Chunker": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer._internal_.Chunker.html",
4
4
  "DAGBuilder": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer._internal_.DAGBuilder.html",
5
5
  "FileLayout": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer._internal_.FileLayout.html",
6
- "ImportProgressData": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer._internal_.ImportProgressData.html",
6
+ "ImportReadProgress": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer._internal_.ImportReadProgress.html",
7
+ "ImportWriteProgress": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer._internal_.ImportWriteProgress.html",
8
+ "LayoutLeafProgress": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer._internal_.LayoutLeafProgress.html",
7
9
  "Reducer": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer._internal_.Reducer.html",
8
10
  "BufferImportProgressEvents": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer._internal_.BufferImportProgressEvents.html",
11
+ "DagBuilderProgressEvents": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer._internal_.DagBuilderProgressEvents.html",
9
12
  "ImporterSourceStream": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer._internal_.ImporterSourceStream.html",
13
+ "ReducerProgressEvents": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer._internal_.ReducerProgressEvents.html",
10
14
  "BufferImporter": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer.BufferImporter.html",
11
15
  "BufferImporterResult": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer.BufferImporterResult.html",
12
16
  "Directory": "https://ipfs.github.io/js-ipfs-unixfs/interfaces/ipfs_unixfs_importer.Directory.html",
@@ -23,7 +27,7 @@
23
27
  "ImportCandidate": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer.ImportCandidate.html",
24
28
  "ImportCandidateStream": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer.ImportCandidateStream.html",
25
29
  "ImportContent": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer.ImportContent.html",
26
- "ImportProgressEvents": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer.ImportProgressEvents.html",
30
+ "ImporterProgressEvents": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer.ImporterProgressEvents.html",
27
31
  "InProgressImportResult": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer.InProgressImportResult.html",
28
32
  "WritableStorage": "https://ipfs.github.io/js-ipfs-unixfs/types/ipfs_unixfs_importer.WritableStorage.html",
29
33
  "importByteStream": "https://ipfs.github.io/js-ipfs-unixfs/functions/ipfs_unixfs_importer.importByteStream.html",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ipfs-unixfs-importer",
3
- "version": "15.0.3",
3
+ "version": "15.1.1",
4
4
  "description": "JavaScript implementation of the UnixFs importer used by IPFS",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/js-ipfs-unixfs/tree/master/packages/ipfs-unixfs-importer#readme",
@@ -164,7 +164,7 @@
164
164
  "err-code": "^3.0.1",
165
165
  "hamt-sharding": "^3.0.0",
166
166
  "interface-blockstore": "^5.0.0",
167
- "interface-store": "^4.0.0",
167
+ "interface-store": "^5.0.1",
168
168
  "ipfs-unixfs": "^11.0.0",
169
169
  "it-all": "^2.0.0",
170
170
  "it-batch": "^2.0.0",
@@ -3,18 +3,24 @@ import { persist, PersistOptions } from '../utils/persist.js'
3
3
  import * as dagPb from '@ipld/dag-pb'
4
4
  import * as raw from 'multiformats/codecs/raw'
5
5
  import type { BufferImporter } from '../index.js'
6
- import type { Version } from 'multiformats/cid'
6
+ import type { CID, Version } from 'multiformats/cid'
7
7
  import { CustomProgressEvent } from 'progress-events'
8
8
  import type { ProgressOptions, ProgressEvent } from 'progress-events'
9
9
 
10
10
  /**
11
11
  * Passed to the onProgress callback while importing files
12
12
  */
13
- export interface ImportProgressData {
13
+ export interface ImportWriteProgress {
14
14
  /**
15
- * The size of the current chunk
15
+ * How many bytes we have written for this source so far - this may be
16
+ * bigger than the file size due to the DAG-PB wrappers of each block
16
17
  */
17
- bytes: number
18
+ bytesWritten: bigint
19
+
20
+ /**
21
+ * The CID of the block that has been written
22
+ */
23
+ cid: CID
18
24
 
19
25
  /**
20
26
  * The path of the file being imported, if one was specified
@@ -23,7 +29,7 @@ export interface ImportProgressData {
23
29
  }
24
30
 
25
31
  export type BufferImportProgressEvents =
26
- ProgressEvent<'unixfs:importer:progress', ImportProgressData>
32
+ ProgressEvent<'unixfs:importer:progress:file:write', ImportWriteProgress>
27
33
 
28
34
  export interface BufferImporterOptions extends ProgressOptions<BufferImportProgressEvents> {
29
35
  cidVersion: Version
@@ -33,9 +39,10 @@ export interface BufferImporterOptions extends ProgressOptions<BufferImportProgr
33
39
 
34
40
  export function defaultBufferImporter (options: BufferImporterOptions): BufferImporter {
35
41
  return async function * bufferImporter (file, blockstore) {
42
+ let bytesWritten = 0n
43
+
36
44
  for await (let block of file.content) {
37
- yield async () => {
38
- options.onProgress?.(new CustomProgressEvent<ImportProgressData>('unixfs:importer:progress', { bytes: block.byteLength, path: file.path }))
45
+ yield async () => { // eslint-disable-line no-loop-func
39
46
  let unixfs
40
47
 
41
48
  const opts: PersistOptions = {
@@ -59,8 +66,18 @@ export function defaultBufferImporter (options: BufferImporterOptions): BufferIm
59
66
  })
60
67
  }
61
68
 
69
+ const cid = await persist(block, blockstore, opts)
70
+
71
+ bytesWritten += BigInt(block.byteLength)
72
+
73
+ options.onProgress?.(new CustomProgressEvent<ImportWriteProgress>('unixfs:importer:progress:file:write', {
74
+ bytesWritten,
75
+ cid,
76
+ path: file.path
77
+ }))
78
+
62
79
  return {
63
- cid: await persist(block, blockstore, opts),
80
+ cid,
64
81
  unixfs,
65
82
  size: BigInt(block.length),
66
83
  block
@@ -3,9 +3,8 @@ import { persist } from '../utils/persist.js'
3
3
  import { encode, prepare } from '@ipld/dag-pb'
4
4
  import type { Directory, InProgressImportResult, WritableStorage } from '../index.js'
5
5
  import type { Version } from 'multiformats/cid'
6
- import type { ProgressOptions } from 'progress-events'
7
6
 
8
- export interface DirBuilderOptions extends ProgressOptions {
7
+ export interface DirBuilderOptions {
9
8
  cidVersion: Version
10
9
  signal?: AbortSignal
11
10
  }
@@ -1,12 +1,13 @@
1
1
  import { UnixFS } from 'ipfs-unixfs'
2
2
  import { persist } from '../utils/persist.js'
3
- import { encode, PBLink, prepare } from '@ipld/dag-pb'
3
+ import { encode, PBLink, PBNode, prepare } from '@ipld/dag-pb'
4
4
  import parallelBatch from 'it-parallel-batch'
5
5
  import * as rawCodec from 'multiformats/codecs/raw'
6
- import type { BufferImporter, File, InProgressImportResult, WritableStorage, SingleBlockImportResult } from '../index.js'
6
+ import type { BufferImporter, File, InProgressImportResult, WritableStorage, SingleBlockImportResult, ImporterProgressEvents } from '../index.js'
7
7
  import type { FileLayout, Reducer } from '../layout/index.js'
8
- import type { Version } from 'multiformats/cid'
9
- import type { ProgressOptions } from 'progress-events'
8
+ import type { CID, Version } from 'multiformats/cid'
9
+ import { CustomProgressEvent } from 'progress-events'
10
+ import type { ProgressOptions, ProgressEvent } from 'progress-events'
10
11
 
11
12
  interface BuildFileBatchOptions {
12
13
  bufferImporter: BufferImporter
@@ -50,7 +51,22 @@ async function * buildFileBatch (file: File, blockstore: WritableStorage, option
50
51
  }
51
52
  }
52
53
 
53
- interface ReduceOptions extends ProgressOptions {
54
+ export interface LayoutLeafProgress {
55
+ /**
56
+ * The CID of the leaf being written
57
+ */
58
+ cid: CID
59
+
60
+ /**
61
+ * The path of the file being imported, if one was specified
62
+ */
63
+ path?: string
64
+ }
65
+
66
+ export type ReducerProgressEvents =
67
+ ProgressEvent<'unixfs:importer:progress:file:layout', LayoutLeafProgress>
68
+
69
+ interface ReduceOptions extends ProgressOptions<ImporterProgressEvents> {
54
70
  reduceSingleLeafToSelf: boolean
55
71
  cidVersion: Version
56
72
  signal?: AbortSignal
@@ -64,6 +80,7 @@ const reduce = (file: File, blockstore: WritableStorage, options: ReduceOptions)
64
80
  const reducer: Reducer = async function (leaves) {
65
81
  if (leaves.length === 1 && isSingleBlockImport(leaves[0]) && options.reduceSingleLeafToSelf) {
66
82
  const leaf = leaves[0]
83
+ let node: Uint8Array | PBNode = leaf.block
67
84
 
68
85
  if (isSingleBlockImport(leaf) && (file.mtime !== undefined || file.mode !== undefined)) {
69
86
  // only one leaf node which is a raw leaf - we have metadata so convert it into a
@@ -75,7 +92,9 @@ const reduce = (file: File, blockstore: WritableStorage, options: ReduceOptions)
75
92
  data: leaf.block
76
93
  })
77
94
 
78
- leaf.block = encode(prepare({ Data: leaf.unixfs.marshal() }))
95
+ node = { Data: leaf.unixfs.marshal(), Links: [] }
96
+
97
+ leaf.block = encode(prepare(node))
79
98
 
80
99
  leaf.cid = await persist(leaf.block, blockstore, {
81
100
  ...options,
@@ -84,6 +103,11 @@ const reduce = (file: File, blockstore: WritableStorage, options: ReduceOptions)
84
103
  leaf.size = BigInt(leaf.block.length)
85
104
  }
86
105
 
106
+ options.onProgress?.(new CustomProgressEvent<LayoutLeafProgress>('unixfs:importer:progress:file:layout', {
107
+ cid: leaf.cid,
108
+ path: leaf.originalPath
109
+ }))
110
+
87
111
  return {
88
112
  cid: leaf.cid,
89
113
  path: file.path,
@@ -146,6 +170,11 @@ const reduce = (file: File, blockstore: WritableStorage, options: ReduceOptions)
146
170
  const block = encode(prepare(node))
147
171
  const cid = await persist(block, blockstore, options)
148
172
 
173
+ options.onProgress?.(new CustomProgressEvent<LayoutLeafProgress>('unixfs:importer:progress:file:layout', {
174
+ cid,
175
+ path: file.originalPath
176
+ }))
177
+
149
178
  return {
150
179
  cid,
151
180
  path: file.path,
@@ -1,9 +1,34 @@
1
1
  import { dirBuilder, DirBuilderOptions } from './dir.js'
2
2
  import { fileBuilder, FileBuilderOptions } from './file.js'
3
3
  import errCode from 'err-code'
4
- import type { Directory, File, FileCandidate, ImportCandidate, InProgressImportResult, WritableStorage } from '../index.js'
4
+ import type { Directory, File, FileCandidate, ImportCandidate, ImporterProgressEvents, InProgressImportResult, WritableStorage } from '../index.js'
5
5
  import type { ChunkValidator } from './validate-chunks.js'
6
6
  import type { Chunker } from '../chunker/index.js'
7
+ import type { ProgressEvent, ProgressOptions } from 'progress-events'
8
+ import { CustomProgressEvent } from 'progress-events'
9
+
10
+ /**
11
+ * Passed to the onProgress callback while importing files
12
+ */
13
+ export interface ImportReadProgress {
14
+ /**
15
+ * How many bytes we have read from this source so far
16
+ */
17
+ bytesRead: bigint
18
+
19
+ /**
20
+ * The size of the current chunk
21
+ */
22
+ chunkSize: bigint
23
+
24
+ /**
25
+ * The path of the file being imported, if one was specified
26
+ */
27
+ path?: string
28
+ }
29
+
30
+ export type DagBuilderProgressEvents =
31
+ ProgressEvent<'unixfs:importer:progress:file:read', ImportReadProgress>
7
32
 
8
33
  function isIterable (thing: any): thing is Iterable<any> {
9
34
  return Symbol.iterator in thing
@@ -33,7 +58,7 @@ function contentAsAsyncIterable (content: Uint8Array | AsyncIterable<Uint8Array>
33
58
  throw errCode(new Error('Content was invalid'), 'ERR_INVALID_CONTENT')
34
59
  }
35
60
 
36
- export interface DagBuilderOptions extends FileBuilderOptions, DirBuilderOptions {
61
+ export interface DagBuilderOptions extends FileBuilderOptions, DirBuilderOptions, ProgressOptions<ImporterProgressEvents> {
37
62
  chunker: Chunker
38
63
  chunkValidator: ChunkValidator
39
64
  wrapWithDirectory: boolean
@@ -63,7 +88,22 @@ export function defaultDagBuilder (options: DagBuilderOptions): DAGBuilder {
63
88
  path: entry.path,
64
89
  mtime: entry.mtime,
65
90
  mode: entry.mode,
66
- content: options.chunker(options.chunkValidator(contentAsAsyncIterable(entry.content))),
91
+ content: (async function * () {
92
+ let bytesRead = 0n
93
+
94
+ for await (const chunk of options.chunker(options.chunkValidator(contentAsAsyncIterable(entry.content)))) {
95
+ const currentChunkSize = BigInt(chunk.byteLength)
96
+ bytesRead += currentChunkSize
97
+
98
+ options.onProgress?.(new CustomProgressEvent<ImportReadProgress>('unixfs:importer:progress:file:read', {
99
+ bytesRead,
100
+ chunkSize: currentChunkSize,
101
+ path: entry.path
102
+ }))
103
+
104
+ yield chunk
105
+ }
106
+ })(),
67
107
  originalPath
68
108
  }
69
109
 
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import parallelBatch from 'it-parallel-batch'
2
- import { DAGBuilder, defaultDagBuilder } from './dag-builder/index.js'
2
+ import { DAGBuilder, DagBuilderProgressEvents, defaultDagBuilder } from './dag-builder/index.js'
3
3
  import { defaultTreeBuilder } from './tree-builder.js'
4
4
  import type { UnixFS, Mtime } from 'ipfs-unixfs'
5
5
  import type { CID, Version as CIDVersion } from 'multiformats/cid'
@@ -13,6 +13,7 @@ import first from 'it-first'
13
13
  import errcode from 'err-code'
14
14
  import type { AwaitIterable } from 'interface-store'
15
15
  import type { ProgressOptions } from 'progress-events'
16
+ import type { ReducerProgressEvents } from './dag-builder/file.js'
16
17
 
17
18
  export type ByteStream = AwaitIterable<Uint8Array>
18
19
  export type ImportContent = ByteStream | Uint8Array
@@ -76,13 +77,15 @@ export interface HamtHashFn { (value: Uint8Array): Promise<Uint8Array> }
76
77
  export interface TreeBuilder { (source: AsyncIterable<InProgressImportResult>, blockstore: WritableStorage): AsyncIterable<ImportResult> }
77
78
  export interface BufferImporter { (file: File, blockstore: WritableStorage): AsyncIterable<() => Promise<BufferImporterResult>> }
78
79
 
79
- export type ImportProgressEvents =
80
- BufferImportProgressEvents
80
+ export type ImporterProgressEvents =
81
+ BufferImportProgressEvents |
82
+ DagBuilderProgressEvents |
83
+ ReducerProgressEvents
81
84
 
82
85
  /**
83
86
  * Options to control the importer's behaviour
84
87
  */
85
- export interface ImporterOptions extends ProgressOptions<ImportProgressEvents> {
88
+ export interface ImporterOptions extends ProgressOptions<ImporterProgressEvents> {
86
89
  /**
87
90
  * When a file would span multiple DAGNodes, if this is true the leaf nodes
88
91
  * will not be wrapped in `UnixFS` protobufs and will instead contain the