sliccy 6.110.1 → 6.110.2
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/dist/ui/.vite/manifest.json +132 -132
- package/dist/ui/assets/{account-store-BoX1x9kV.js → account-store-8sKKUZ8J.js} +1 -1
- package/dist/ui/assets/{account-store-C_RjQ1LW.js → account-store-Bg1KKHOx.js} +1 -1
- package/dist/ui/assets/{adobe-B23Ywr-q.js → adobe-0CWIpyju.js} +1 -1
- package/dist/ui/assets/{adobe-Cl3gYIGk.js → adobe-ChXsF6gw.js} +1 -1
- package/dist/ui/assets/{agent-bridge-BX3wCp2Y.js → agent-bridge-B43SVYcu.js} +1 -1
- package/dist/ui/assets/{agent-panels-Wkk7jZv2.js → agent-panels-9uCI5yeM.js} +1 -1
- package/dist/ui/assets/{apply-layout-DZhC7tvZ.js → apply-layout-Bz-0rXhV.js} +1 -1
- package/dist/ui/assets/{apps-CSqm019X.js → apps-C16RztyU.js} +1 -1
- package/dist/ui/assets/{azure-openai-3gNI8EZk.js → azure-openai-BCKGDF-y.js} +1 -1
- package/dist/ui/assets/{azure-openai-BzdIKLVJ.js → azure-openai-DoQszniP.js} +1 -1
- package/dist/ui/assets/{cerebras-Cw0x8F55.js → cerebras-CQwhL4Ig.js} +1 -1
- package/dist/ui/assets/{cerebras-DVQI1HLQ.js → cerebras-kH_bQsg2.js} +1 -1
- package/dist/ui/assets/{connect-surface-B6KSgq_q.js → connect-surface-BMrb-EnN.js} +1 -1
- package/dist/ui/assets/{directed-approval-CLrepWJZ.js → directed-approval-zeD_orXz.js} +1 -1
- package/dist/ui/assets/{dist-DhiPJE96.js → dist-BKQr3WRb.js} +1 -1
- package/dist/ui/assets/{dist-CIyvNQb4.js → dist-CBELmDjr.js} +1 -1
- package/dist/ui/assets/dist-DHO9E-gl.js +2 -0
- package/dist/ui/assets/dist-iMxkf8fm.js +2 -0
- package/dist/ui/assets/{fs-Bt1lzDEz.js → fs-BsqtoiKD.js} +2 -2
- package/dist/ui/assets/{fs-CYCQ52sl.js → fs-DKRiXKHo.js} +1 -1
- package/dist/ui/assets/{github-BhDAxQAC.js → github-DGUqMidV.js} +1 -1
- package/dist/ui/assets/{github-DT8CXDfD.js → github-DqsEulTB.js} +2 -2
- package/dist/ui/assets/{github-copilot-q7k6_hj_.js → github-copilot-DJf8cE1K.js} +1 -1
- package/dist/ui/assets/{github-copilot-C_oyd3zr.js → github-copilot-Xp2l1YxD.js} +1 -1
- package/dist/ui/assets/{github-install-DVOtkLLc.js → github-install-DRa8AaBY.js} +1 -1
- package/dist/ui/assets/{github-zip-DxRjJbti.js → github-zip-BpPiUirA.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-BuPGQg5c.js → js-realm-worker-D6DSLfXh.js} +10 -10
- package/dist/ui/assets/{kernel-worker-BzXcNm5v.js → kernel-worker-DQDT4Cud.js} +530 -530
- package/dist/ui/assets/{local-llm-ezgB4Rhv.js → local-llm-Cjzjpqa1.js} +1 -1
- package/dist/ui/assets/{local-llm-MgK32jpS.js → local-llm-OBHKAcNH.js} +1 -1
- package/dist/ui/assets/{main-yMuFUfUo.js → main-BK-7ArIz.js} +3 -3
- package/dist/ui/assets/{mount-Dk8U-SsK.js → mount-BrQpW9eO.js} +1 -1
- package/dist/ui/assets/{mount-CWJVI6cG.js → mount-Rb9VVKip.js} +2 -2
- package/dist/ui/assets/{mount-recovery-BFldcrCy.js → mount-recovery-Cb-AXW35.js} +1 -1
- package/dist/ui/assets/{new-session-CH8hv33Z.js → new-session-CF4YpiQ9.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-DtE-wVk8.js → oauth-bootstrap-YFOy1SIX.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator--AtamMOt.js → onboarding-orchestrator-Dmh6rOJl.js} +1 -1
- package/dist/ui/assets/{openai-codex-ChSC2_RF.js → openai-codex-84EHUcAD.js} +1 -1
- package/dist/ui/assets/{openai-codex-BkhAYOFq.js → openai-codex-DY_L0KSA.js} +1 -1
- package/dist/ui/assets/{openrouter-C6uKRX2s.js → openrouter-meLV8ehE.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-q9Eaddvv.js → openrouter-oauth-CblQ27-K.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CQ5d6KxV.js → openrouter-oauth-DudFNSW4.js} +1 -1
- package/dist/ui/assets/{openrouter-M3t6me37.js → openrouter-z7GGvxCM.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-9Kh_edB6.js → panel-rpc-handlers-DmiAyTiy.js} +2 -2
- package/dist/ui/assets/{panelize-shell-BYN8cWYS.js → panelize-shell-65i9Hq7n.js} +1 -1
- package/dist/ui/assets/{provider-D1aUL7cR.js → provider-BE0mTIGf.js} +1 -1
- package/dist/ui/assets/{provider-6nrOEzoy.js → provider-BLbTGk-_.js} +2 -2
- package/dist/ui/assets/{provider-settings-bw9IwZz9.js → provider-settings-Dq-yRgMh.js} +1 -1
- package/dist/ui/assets/provider-store-access-CJdYrcvf.js +1 -0
- package/dist/ui/assets/provider-store-access-NHOQWINx.js +1 -0
- package/dist/ui/assets/{providers-DIS-LHtN.js → providers-B3OPYf2o.js} +2 -2
- package/dist/ui/assets/{providers-Bx6tfN25.js → providers-BlPz5ou6.js} +1 -1
- package/dist/ui/assets/{quick-llm-BgZdJ8Xu.js → quick-llm-CcFoANd_.js} +1 -1
- package/dist/ui/assets/{recovery-screen-lA16kcIk.js → recovery-screen-44Uu5Cgy.js} +1 -1
- package/dist/ui/assets/{run-BF2Vs8sX.js → run-BQu73khp.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-Dhp6wfKf.js → setup-feature-flags-remote-ITlSmr_i.js} +1 -1
- package/dist/ui/assets/sidecar-repair-Ddcz9Mvv.js +1 -0
- package/dist/ui/assets/{skills-FlCqTkA2.js → skills-B0o8gPTv.js} +1 -1
- package/dist/ui/assets/slicc-version-BrPYMXS9.js +1 -0
- package/dist/ui/assets/{state-B-6hESFq.js → state-BSTmV4yO.js} +1 -1
- package/dist/ui/assets/{store-Bn1BVnep.js → store-C3RMRz9d.js} +1 -1
- package/dist/ui/assets/{store-CH1Vdm3C.js → store-CzQ9Fvfr.js} +1 -1
- package/dist/ui/assets/{sudo-BAmfGa0_.js → sudo-CPH7ANoV.js} +1 -1
- package/dist/ui/assets/{sync-dialog-DvEMJqPI.js → sync-dialog-vSEl3KxP.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-CI7F7zk4.js → tray-sidecar-BIcoXTJN.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-Du0Zc5Vc.js → upgrade-detection-TsOPChOa.js} +1 -1
- package/dist/ui/assets/{voice-reply-y0SVuHxl.js → voice-reply-O_Z2C0eg.js} +1 -1
- package/dist/ui/assets/{wc-attach-DNpV2C1V.js → wc-attach-DM5yRZRS.js} +2 -2
- package/dist/ui/assets/{wc-extension-CxkCsjca.js → wc-extension-Dg5dOqTK.js} +2 -2
- package/dist/ui/assets/{wc-float-label-DcJd5glS.js → wc-float-label-Bmp3gmHN.js} +1 -1
- package/dist/ui/assets/{wc-floatbar-online-DLKzoxMg.js → wc-floatbar-online-B8ug4UwE.js} +1 -1
- package/dist/ui/assets/{wc-follower-XKpP_jYM.js → wc-follower-G03aUmAn.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-B2VtgZnu.js → wc-follower-oauth-D15d_vbh.js} +1 -1
- package/dist/ui/assets/{wc-live-BAcY7vuX.js → wc-live-CiwhsK8i.js} +6 -6
- package/dist/ui/assets/{wc-nav-ui1eVAgs.js → wc-nav-D8Bi3zRA.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CzLSlGtO.js → wc-onboarding-DUBWYyMl.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-CJdgmCF_.js → wc-placeholder-CPMV2eO3.js} +3 -3
- package/dist/ui/assets/{wc-settings-BVkI9WSG.js → wc-settings-M8e_JWQh.js} +3 -3
- package/dist/ui/assets/{wc-shell--0d7OBBA.js → wc-shell-WlrdsROD.js} +2 -2
- package/dist/ui/assets/{wc-shortcut-config-DWtAxJBs.js → wc-shortcut-config-BftmZXGf.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-BBuXTi5P.js → wc-sprinkles-DhXJLTUO.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-CzlJYgix.js → wc-transcript-export-DjpmBvLP.js} +2 -2
- package/dist/ui/assets/{wc-tray-CgVmWqZy.js → wc-tray-BdgbNPhM.js} +4 -4
- package/dist/ui/assets/welcome-detection-0SaDZUV0.js +1 -0
- package/dist/ui/assets/{xai-grok-CpbT74JL.js → xai-grok-CVEtAfJK.js} +1 -1
- package/dist/ui/assets/{xai-grok-Bnn0c_v-.js → xai-grok-DH1oX2E5.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +1 -1
- package/dist/ui/assets/dist-CLbkZ_1_.js +0 -2
- package/dist/ui/assets/dist-ChNj9ewx.js +0 -2
- package/dist/ui/assets/provider-store-access-BZyxBZSe.js +0 -1
- package/dist/ui/assets/provider-store-access-DBsr55Oe.js +0 -1
- package/dist/ui/assets/sidecar-repair-DBuhkumN.js +0 -1
- package/dist/ui/assets/slicc-version-Bcm7uZDt.js +0 -1
- package/dist/ui/assets/welcome-detection-D_bN1hbs.js +0 -1
|
@@ -9,4 +9,4 @@ import{i as e,n as t,t as n}from"./rolldown-runtime-Dd_uD5pT.js";import{n as r,t
|
|
|
9
9
|
`+Error().stack.slice(6);if(!t)throw L(P(`EINVAL`,`Can not make an RPC request without a port`));let{resolve:a,reject:o,promise:s}=Promise.withResolvers(),c=Math.random().toString(16).slice(5),l={resolve:a,reject:o,promise:s,fs:r,timeout:setTimeout(()=>{let e=L(P(`ETIMEDOUT`,`RPC request timed out`));e.stack+=i,Hs(c),o(e)},n)};return Us.set(c,l),t.send({...e,_zenfs:!0,id:c,stack:i}),s}function Gs(e,...t){return t.includes(e.method)}function Ks(e){if(!Vs(e))return;if(!Us.has(e.id)){let t=L(P(`EIO`,`Invalid RPC id: `+e.id));throw t.stack+=e.stack,t}let{resolve:t,reject:n}=Us.get(e.id);if(e.error){let t=M.fromJSON({code:`EIO`,errno:k.EIO,...e.error});t.stack+=e.stack,Hs(e.id),n(t);return}Hs(e.id),t(Gs(e,`stat`,`createFile`,`mkdir`)?new K(e.value):e.value)}function qs(e,t){if(!e)throw L(P(`EINVAL`,`Cannot attach to non-existent port`));pe(`Attached handler to port: `+t.name),e.addHandler(t)}function Js(e,t){if(!e)throw L(P(`EINVAL`,`Cannot detach from non-existent port`));pe(`Detached handler from port: `+t.name),e.removeHandler(t)}function Ys(e){let t=[],n=t.push.bind(t);return qs(e,n),async function(r){Js(e,n);for(let n of t)await Xs(e,r,`data`in n?n.data:n)}}async function Xs(e,t,n){if(!Vs(n))return;let r,i,a=[];try{switch(n.method){case`read`:{let[e,i,a,o]=n.args;await t.read(e,i,a,o),r=i;break}case`stat`:case`createFile`:case`mkdir`:{let e=await t[n.method](...n.args),i=e instanceof K?e:new K(e);r=new Uint8Array(i.buffer,i.byteOffset,i.byteLength);break}case`touch`:{let[e,i]=n.args;await t.touch(e,new K(i)),r=void 0;break}default:r=await t[n.method](...n.args)}}catch(e){i=e instanceof M?e.toJSON():p(e,`message`,`stack`)}e.send({_zenfs:!0,...p(n,`id`,`method`,`stack`),error:i,value:r},a)}var Zs=[`rename`,`stat`,`touch`,`createFile`,`unlink`,`rmdir`,`mkdir`,`readdir`,`exists`,`link`,`sync`,`read`,`write`];function Qs(e){class t extends e{async done(){return this.sync()}queueDone(){return this.sync()}_promise=Promise.resolve();_async(e){this._promise=this._promise.finally(()=>e())}_isInitialized=!1;_skippedCacheUpdates=0;constructor(...e){super(...e),this._patchAsync()}async ready(){if(await super.ready(),!(this._isInitialized||this.attributes.has(`no_async_preload`))){if(await this._promise,this.checkSync(),await this._sync.ready(),this._sync instanceof or&&this instanceof or){let e=this._sync.transaction(),t=this.transaction(),n=[];for(let r of await t.keys())n.push(t.get(r).then(t=>e.setSync(r,t)));await Promise.all(n),this._isInitialized=!0;return}try{await this.crossCopy(`/`),me(`Skipped ${this._skippedCacheUpdates} updates to the sync cache during initialization`),this._isInitialized=!0}catch(e){throw this._isInitialized=!1,de(e)}}}checkSync(){if(this.attributes.has(`no_async_preload`))throw P(`ENOTSUP`,`Sync preloading has been disabled for this async file system`);if(!this._sync)throw de(P(`ENOTSUP`,`No sync cache is attached to this async file system`))}renameSync(e,t){this.checkSync(),this._sync.renameSync(e,t),this._async(()=>this.rename(e,t))}statSync(e){return this.checkSync(),this._sync.statSync(e)}touchSync(e,t){this.checkSync(),this._sync.touchSync(e,t),this._async(()=>this.touch(e,t))}createFileSync(e,t){this.checkSync();let n=this._sync.createFileSync(e,t);return this._async(()=>this.createFile(e,t)),n}unlinkSync(e){this.checkSync(),this._sync.unlinkSync(e),this._async(()=>this.unlink(e))}rmdirSync(e){this.checkSync(),this._sync.rmdirSync(e),this._async(()=>this.rmdir(e))}mkdirSync(e,t){this.checkSync();let n=this._sync.mkdirSync(e,t);return this._async(()=>this.mkdir(e,t)),n}readdirSync(e){return this.checkSync(),this._sync.readdirSync(e)}linkSync(e,t){this.checkSync(),this._sync.linkSync(e,t),this._async(()=>this.link(e,t))}async sync(){!this.attributes.has(`no_async_preload`)&&this._sync&&this._sync.syncSync(),await this._promise.catch(()=>{})}syncSync(){this.checkSync(),this._sync.syncSync()}existsSync(e){return this.checkSync(),this._sync.existsSync(e)}readSync(e,t,n,r){this.checkSync(),this._sync.readSync(e,t,n,r)}writeSync(e,t,n){this.checkSync(),this._sync.writeSync(e,t,n),this._async(()=>this.write(e,t,n))}streamWrite(e,t){this.checkSync();let n=this._sync.streamWrite(e,t).getWriter(),r=super.streamWrite(e,t).getWriter();return new WritableStream({async write(e,t){await Promise.all([n.write(e),r.write(e)]).catch(t.error.bind(t))},async close(){await Promise.all([n.close(),r.close()])},async abort(e){await Promise.all([n.abort(e),r.abort(e)])}})}async crossCopy(e){this.checkSync();let t=await this.stat(e);if(!q(t)){this._sync.createFileSync(e,t);let n=new Uint8Array(t.size);await this.read(e,n,0,t.size),this._sync.writeSync(e,n,0),this._sync.touchSync(e,t);return}e!==`/`&&(this._sync.mkdirSync(e,t),this._sync.touchSync(e,t));let n=[];for(let t of await this.readdir(e))n.push(this.crossCopy(U(e,t)));await Promise.all(n)}_patchAsync(){let e=[`read`,`readdir`,`stat`,`exists`],t=Zs.filter(t=>!e.includes(t));for(let e of t){let t=this[e].bind(this);function n(t,r){if(r||(r=Error(),Error.captureStackTrace(r,n)),!r.stack)return!1;let i=r.stack.split(`
|
|
10
10
|
`).slice(t).join(`
|
|
11
11
|
`);return i.includes(`at <computed> [as ${e}]`)||i.includes(`at async <computed> [as ${e}]`)||i.includes(`${e}Sync `)}this[e]=async(...r)=>{let i=await t(...r);if(n(2))return i;if(!this._isInitialized)return this._skippedCacheUpdates++,i;try{this._sync?.[`${e}Sync`]?.(...r)}catch(e){if(n(3,e))return i;throw e.message+=` (Out of sync!)`,L(e)}return i}}me(`Async: patched ${t.length} methods`)}}return t}var $s=class extends Qs($n){channel;timeout;port;_sync=ur.create({label:`tmpfs:port`});constructor(e,t=250){super(1886351988,`portfs`),this.channel=e,this.timeout=t,this.port=Ls(e),qs(this.port,Ks)}rpc(e,...t){return Ws({method:e,args:t},{port:this.port,timeout:this.timeout,fs:this})}async ready(){await this.rpc(`ready`),await super.ready()}rename(e,t){return this.rpc(`rename`,e,t)}async stat(e){let t=await this.rpc(`stat`,e);return t instanceof K?t:new K(t)}async touch(e,t){let n=t instanceof K?t:new K(t);await this.rpc(`touch`,e,new Uint8Array(n.buffer,n.byteOffset,n.byteLength))}async sync(){await super.sync(),await this.rpc(`sync`)}async createFile(e,t){t instanceof K&&(t=t.toJSON());let n=await this.rpc(`createFile`,e,t);return n instanceof K?n:new K(n)}unlink(e){return this.rpc(`unlink`,e)}rmdir(e){return this.rpc(`rmdir`,e)}async mkdir(e,t){t instanceof K&&(t=t.toJSON());let n=await this.rpc(`mkdir`,e,t);return n instanceof K?n:new K(n)}readdir(e){return this.rpc(`readdir`,e)}exists(e){return this.rpc(`exists`,e)}link(e,t){return this.rpc(`link`,e,t)}async read(e,t,n,r){t.set(await this.rpc(`read`,e,t,n,r))}write(e,t,n){return this.rpc(`write`,e,t,n)}};function ec(e,t){let n=Ls(e);qs(n,e=>Xs(n,t,e))}function tc(e,t){let n=Ls(e);Js(n,e=>Xs(n,t,e))}var nc={name:`Port`,options:{port:{type:[EventTarget,function(e){return typeof e==`object`&&`on`in e}],required:!0},timeout:{type:`number`,required:!1}},create(e){return new $s(e.port,e.timeout)}};async function rc(e,t,n=0){let r=Ls(e),i=Ys(r),a=await es(t,n);return ec(r,a),await i(a),pe(`Resolved remote mount: `+a.toString()),a}var ic=function(e,t,n,r,i,a){function o(e){if(e!==void 0&&typeof e!=`function`)throw TypeError(`Function expected`);return e}for(var s=r.kind,c=s===`getter`?`get`:s===`setter`?`set`:`value`,l=!t&&e?r.static?e:e.prototype:null,u=t||(l?Object.getOwnPropertyDescriptor(l,r.name):{}),d,f=!1,p=n.length-1;p>=0;p--){var m={};for(var h in r)m[h]=h===`access`?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.addInitializer=function(e){if(f)throw TypeError(`Cannot add initializers after decoration has completed`);a.push(o(e||null))};var g=(0,n[p])(s===`accessor`?{get:u.get,set:u.set}:u[c],m);if(s===`accessor`){if(g===void 0)continue;if(typeof g!=`object`||!g)throw TypeError(`Object expected`);(d=o(g.get))&&(u.get=d),(d=o(g.set))&&(u.set=d),(d=o(g.init))&&i.unshift(d)}else(d=o(g))&&(s===`field`?i.unshift(d):u[c]=d)}l&&Object.defineProperty(l,r.name,u),f=!0},Q=function(e,t,n){for(var r=arguments.length>2,i=0;i<t.length;i++)n=r?t[i].call(e,n):t[i].call(e);return r?n:void 0},ac=function(e,t,n){if(t!=null){if(typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Object expected.`);var r,i;if(n){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);r=t[Symbol.dispose],n&&(i=r)}if(typeof r!=`function`)throw TypeError(`Object not disposable.`);i&&(r=function(){try{i.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t},oc=(function(e){return function(t){function n(n){t.error=t.hasError?new e(n,t.error,`An error was suppressed during disposal.`):n,t.hasError=!0}var r,i=0;function a(){for(;r=t.stack.pop();)try{if(!r.async&&i===1)return i=0,t.stack.push(r),Promise.resolve().then(a);if(r.dispose){var e=r.dispose.call(r.value);if(r.async)return i|=2,Promise.resolve(e).then(a,function(e){return n(e),a()})}else i|=1}catch(e){n(e)}if(i===1)return t.hasError?Promise.reject(t.error):Promise.resolve();if(t.hasError)throw t.error}return a()}})(typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var r=Error(n);return r.name=`SuppressedError`,r.error=e,r.suppressed=t,r}),sc=e=>`0x`+e.toString(16).padStart(8,`0`),{format:cc}=new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:2,unit:`byte`,unitDisplay:`narrow`}),lc=(()=>{var e,t,n,r;let i=[Xt.packed()],a,s=[],c,l=$t(o),u,d=[],f=[],p,m=[],h=[],g,_=[],v=[],y,b=[],x=[];var S=class extends l{static{c=this}static{let o=typeof Symbol==`function`&&Symbol.metadata?Object.create(l[Symbol.metadata]??null):void 0;u=[(e=V).uint32.bind(e)],p=[(t=V).uint32.bind(t)],g=[(n=V).uint32.bind(n)],y=[(r=V).uint32.bind(r)],ic(this,null,u,{kind:`accessor`,name:`id`,static:!1,private:!1,access:{has:e=>`id`in e,get:e=>e.id,set:(e,t)=>{e.id=t}},metadata:o},d,f),ic(this,null,p,{kind:`accessor`,name:`offset_`,static:!1,private:!1,access:{has:e=>`offset_`in e,get:e=>e.offset_,set:(e,t)=>{e.offset_=t}},metadata:o},m,h),ic(this,null,g,{kind:`accessor`,name:`offset`,static:!1,private:!1,access:{has:e=>`offset`in e,get:e=>e.offset,set:(e,t)=>{e.offset=t}},metadata:o},_,v),ic(this,null,y,{kind:`accessor`,name:`size`,static:!1,private:!1,access:{has:e=>`size`in e,get:e=>e.size,set:(e,t)=>{e.size=t}},metadata:o},b,x),ic(null,a={value:c},i,{kind:`class`,name:c.name,metadata:o},null,s),S=c=a.value,o&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})}static name=`MetadataEntry`;#e=Q(this,d,void 0);get id(){return this.#e}set id(e){this.#e=e}#t=(Q(this,f),Q(this,m,void 0));get offset_(){return this.#t}set offset_(e){this.#t=e}#n=(Q(this,h),Q(this,_,void 0));get offset(){return this.#n}set offset(e){this.#n=e}#r=(Q(this,v),Q(this,b,void 0));get size(){return this.#r}set size(e){this.#r=e}toString(){return`<MetadataEntry @ ${sc(this.byteOffset)}>`}constructor(){super(...arguments),Q(this,x)}static{Q(c,s)}};return c})(),uc=255,dc=5,fc=(()=>{var e,t,n,r;let i=[Xt.packed()],a,o=[],s,c=$t.typed(Int32Array),l,u=[],d=[],f,p=[],m=[],h,g=[],_=[],v,y=[],b=[],x,S=[],C=[];var w=class extends c{static{s=this}static{let T=typeof Symbol==`function`&&Symbol.metadata?Object.create(c[Symbol.metadata]??null):void 0;l=[(e=V).uint32.bind(e)],f=[(t=V).uint64.bind(t)],h=[(n=V).uint32.bind(n)],v=[Zt(tn(lc,uc))],x=[(r=V).int32.bind(r)],ic(this,null,l,{kind:`accessor`,name:`checksum`,static:!1,private:!1,access:{has:e=>`checksum`in e,get:e=>e.checksum,set:(e,t)=>{e.checksum=t}},metadata:T},u,d),ic(this,null,f,{kind:`accessor`,name:`timestamp`,static:!1,private:!1,access:{has:e=>`timestamp`in e,get:e=>e.timestamp,set:(e,t)=>{e.timestamp=t}},metadata:T},p,m),ic(this,null,h,{kind:`accessor`,name:`previous_offset`,static:!1,private:!1,access:{has:e=>`previous_offset`in e,get:e=>e.previous_offset,set:(e,t)=>{e.previous_offset=t}},metadata:T},g,_),ic(this,null,v,{kind:`accessor`,name:`items`,static:!1,private:!1,access:{has:e=>`items`in e,get:e=>e.items,set:(e,t)=>{e.items=t}},metadata:T},y,b),ic(this,null,x,{kind:`accessor`,name:`locked`,static:!1,private:!1,access:{has:e=>`locked`in e,get:e=>e.locked,set:(e,t)=>{e.locked=t}},metadata:T},S,C),ic(null,a={value:s},i,{kind:`class`,name:s.name,metadata:T},null,o),w=s=a.value,T&&Object.defineProperty(s,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:T})}static name=`MetadataBlock`;static lockIndex;#e=Q(this,u,void 0);get checksum(){return this.#e}set checksum(e){this.#e=e}#t=(Q(this,d),Q(this,p,BigInt(Date.now())));get timestamp(){return this.#t}set timestamp(e){this.#t=e}#n=(Q(this,m),Q(this,g,void 0));get previous_offset(){return this.#n}set previous_offset(e){this.#n=e}_previous=Q(this,_);get previous(){if(this.previous_offset)return this._previous??=new w(this.buffer,this.previous_offset),this._previous}#r=Q(this,y,void 0);get items(){return this.#r}set items(e){this.#r=e}toString(e=!1){if(!e)return`<MetadataBlock @ ${sc(this.byteOffset)}>`;let t=[`---- Metadata block at ${sc(this.byteOffset)} ----`,`Checksum: ${sc(this.checksum)}`,`Last updated: ${new Date(Number(this.timestamp)).toLocaleString()}`,`Previous block: ${sc(this.previous_offset)}`,`Entries:`].join(`
|
|
12
|
-
`);for(let e of this.items)e.offset&&(t+=`\n\t${sc(e.id)}: ${cc(e.size).padStart(5)} at ${sc(e.offset)}`);return t}#i=(Q(this,b),Q(this,S,void 0));get locked(){return this.#i}set locked(e){this.#i=e}waitUnlocked(e=0){if(e>dc)throw de(P(`EBUSY`,`sbfs: exceeded max attempts waiting for metadata block at ${sc(this.byteOffset)} to be unlocked`));if(Atomics.load(this,w.lockIndex))switch(Atomics.wait(this,w.lockIndex,1)){case`ok`:break;case`not-equal`:return e++,L(`sbfs: waiting for metadata block at ${sc(this.byteOffset)} to be unlocked (${e}/${dc})`),this.waitUnlocked(e);case`timed-out`:throw de(P(`EBUSY`,`sbfs: timed out waiting for metadata block at ${sc(this.byteOffset)} to be unlocked`))}}lock(){this.waitUnlocked(),Atomics.store(this,w.lockIndex,1);let e=()=>{Atomics.store(this,w.lockIndex,0),Atomics.notify(this,w.lockIndex,1)};return e[Symbol.dispose]=e,e}constructor(){super(...arguments),Q(this,C)}static{Q(s,o)}};return w=s})();Object.assign(fc,{lockIndex:Gt(fc,`locked`)/Int32Array.BYTES_PER_ELEMENT});var pc=1651715706,mc=2,hc=(()=>{var e,t,n,r,i,a,o,s,c,l;let u=[Xt.packed()],d,f=[],p,m=$t.typed(BigUint64Array),h,g=[],_=[],v,y=[],b=[],x,S=[],C=[],w,T=[],ee=[],E,te=[],ne=[],D,k=[],A=[],j,M=[],N=[],F,re=[],I=[],ie,ae=[],oe=[],se,ce=[],le=[],ue,fe=[],pe=[],he,ge=[],_e=[],ve,ye=[],be=[];var xe=class extends m{static{p=this}static{let O=typeof Symbol==`function`&&Symbol.metadata?Object.create(m[Symbol.metadata]??null):void 0;h=[(e=V).uint32.bind(e)],v=[(t=V).uint32.bind(t)],x=[(n=V).uint16.bind(n)],w=[(r=V).uint16.bind(r)],E=[(i=V).uint32.bind(i)],D=[(a=V).uint64.bind(a)],j=[(o=V).uint64.bind(o)],F=[V.uint8(16)],ie=[(s=V).uint32.bind(s)],se=[(c=V).uint32.bind(c)],ue=[(l=V).uint32.bind(l)],he=[V.char(64)],ve=[V.char(132)],ic(this,null,h,{kind:`accessor`,name:`checksum`,static:!1,private:!1,access:{has:e=>`checksum`in e,get:e=>e.checksum,set:(e,t)=>{e.checksum=t}},metadata:O},g,_),ic(this,null,v,{kind:`accessor`,name:`magic`,static:!1,private:!1,access:{has:e=>`magic`in e,get:e=>e.magic,set:(e,t)=>{e.magic=t}},metadata:O},y,b),ic(this,null,x,{kind:`accessor`,name:`version`,static:!1,private:!1,access:{has:e=>`version`in e,get:e=>e.version,set:(e,t)=>{e.version=t}},metadata:O},S,C),ic(this,null,w,{kind:`accessor`,name:`inode_format`,static:!1,private:!1,access:{has:e=>`inode_format`in e,get:e=>e.inode_format,set:(e,t)=>{e.inode_format=t}},metadata:O},T,ee),ic(this,null,E,{kind:`accessor`,name:`flags`,static:!1,private:!1,access:{has:e=>`flags`in e,get:e=>e.flags,set:(e,t)=>{e.flags=t}},metadata:O},te,ne),ic(this,null,D,{kind:`accessor`,name:`used_bytes`,static:!1,private:!1,access:{has:e=>`used_bytes`in e,get:e=>e.used_bytes,set:(e,t)=>{e.used_bytes=t}},metadata:O},k,A),ic(this,null,j,{kind:`accessor`,name:`total_bytes`,static:!1,private:!1,access:{has:e=>`total_bytes`in e,get:e=>e.total_bytes,set:(e,t)=>{e.total_bytes=t}},metadata:O},M,N),ic(this,null,F,{kind:`accessor`,name:`uuid`,static:!1,private:!1,access:{has:e=>`uuid`in e,get:e=>e.uuid,set:(e,t)=>{e.uuid=t}},metadata:O},re,I),ic(this,null,ie,{kind:`accessor`,name:`metadata_block_size`,static:!1,private:!1,access:{has:e=>`metadata_block_size`in e,get:e=>e.metadata_block_size,set:(e,t)=>{e.metadata_block_size=t}},metadata:O},ae,oe),ic(this,null,se,{kind:`accessor`,name:`metadata_offset_`,static:!1,private:!1,access:{has:e=>`metadata_offset_`in e,get:e=>e.metadata_offset_,set:(e,t)=>{e.metadata_offset_=t}},metadata:O},ce,le),ic(this,null,ue,{kind:`accessor`,name:`metadata_offset`,static:!1,private:!1,access:{has:e=>`metadata_offset`in e,get:e=>e.metadata_offset,set:(e,t)=>{e.metadata_offset=t}},metadata:O},fe,pe),ic(this,null,he,{kind:`accessor`,name:`label`,static:!1,private:!1,access:{has:e=>`label`in e,get:e=>e.label,set:(e,t)=>{e.label=t}},metadata:O},ge,_e),ic(this,null,ve,{kind:`accessor`,name:`_padding`,static:!1,private:!1,access:{has:e=>`_padding`in e,get:e=>e._padding,set:(e,t)=>{e._padding=t}},metadata:O},ye,be),ic(null,d={value:p},u,{kind:`class`,name:p.name,metadata:O},null,f),xe=p=d.value,O&&Object.defineProperty(p,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:O})}static name=`SuperBlock`;constructor(...e){if(super(...e),Q(this,be),this.magic!=pc){R(`sbfs: Invalid magic value, assuming this is a fresh super block`);let e=new fc(this.buffer,B(xe));Object.assign(this,{metadata:e,metadata_offset:e.byteOffset,used_bytes:BigInt(B(xe)+B(fc)),total_bytes:BigInt(this.buffer.byteLength),magic:pc,version:1,inode_format:5,metadata_block_size:B(fc),uuid:O(crypto.randomUUID())}),vc(this),vc(e);return}if(this.checksum!==_c(this))throw de(P(`EIO`,`sbfs: checksum mismatch for super block`));if(this.metadata=new fc(this.buffer,this.metadata_offset),this.metadata.checksum!==_c(this.metadata))throw de(P(`EIO`,`sbfs: checksum mismatch for metadata block (saved ${sc(this.metadata.checksum)}, computed ${sc(_c(this.metadata))})`));if(this.inode_format!=5)throw de(P(`EIO`,`sbfs: inode format mismatch`));if(this.metadata_block_size!=B(fc))throw de(P(`EIO`,`sbfs: metadata block size mismatch`))}#e=Q(this,g,void 0);get checksum(){return this.#e}set checksum(e){this.#e=e}#t=(Q(this,_),Q(this,y,void 0));get magic(){return this.#t}set magic(e){this.#t=e}#n=(Q(this,b),Q(this,S,void 0));get version(){return this.#n}set version(e){this.#n=e}#r=(Q(this,C),Q(this,T,void 0));get inode_format(){return this.#r}set inode_format(e){this.#r=e}#i=(Q(this,ee),Q(this,te,void 0));get flags(){return this.#i}set flags(e){this.#i=e}#a=(Q(this,ne),Q(this,k,void 0));get used_bytes(){return this.#a}set used_bytes(e){this.#a=e}#o=(Q(this,A),Q(this,M,void 0));get total_bytes(){return this.#o}set total_bytes(e){this.#o=e}#s=(Q(this,N),Q(this,re,void 0));get uuid(){return this.#s}set uuid(e){this.#s=e}#c=(Q(this,I),Q(this,ae,void 0));get metadata_block_size(){return this.#c}set metadata_block_size(e){this.#c=e}#l=(Q(this,oe),Q(this,ce,void 0));get metadata_offset_(){return this.#l}set metadata_offset_(e){this.#l=e}#u=(Q(this,le),Q(this,fe,void 0));get metadata_offset(){return this.#u}set metadata_offset(e){this.#u=e}metadata=Q(this,pe);#d=Q(this,ge,void 0);get label(){return this.#d}set label(e){this.#d=e}#f=(Q(this,_e),Q(this,ye,void 0));get _padding(){return this.#f}set _padding(e){this.#f=e}rotateMetadata(){let e=BigInt(Int32Array.BYTES_PER_ELEMENT),t=BigInt(B(fc)),n=Atomics.load(this,mc),r;for(;;){let i=(e-n%e)%e;r=n+i;let a=r+t;if(a>this.total_bytes)throw L(P(`ENOSPC`,`sbfs: not enough space for a new metadata block`));let o=Atomics.compareExchange(this,mc,n,a);if(o===n)break;n=o}let i=new fc(this.buffer,Number(r)),a=new Uint32Array(this.buffer,this.byteOffset,B(xe)/Uint32Array.BYTES_PER_ELEMENT),o=Atomics.load(a,gc);for(;;){i.previous_offset=o,vc(i);let e=Atomics.compareExchange(a,gc,o,i.byteOffset);if(e===o)break;o=e}return this.metadata=i,vc(this),me(`sbfs: rotated metadata block at ${sc(i.previous_offset)} with new block at ${sc(i.byteOffset)}`),i}isUnused(e,t){if(!t)return!0;if(e+t>this.total_bytes||e<B(xe))return!1;for(let n=this.metadata;n;n=n.previous){if(e<n.byteOffset+B(fc)&&e+t>n.byteOffset)return!1;for(let r of n.items)if(r.offset&&(e>=r.offset&&e<r.offset+r.size||e+t>r.offset&&e+t<=r.offset+r.size||e<=r.offset&&e+t>=r.offset+r.size))return!1}return!0}static{Q(p,f)}};return xe=p})(),gc=Gt(hc,`metadata_offset`)/Uint32Array.BYTES_PER_ELEMENT;function _c(e){let t=B(e)-4;return e instanceof fc&&(t-=Int32Array.BYTES_PER_ELEMENT),l(new Uint8Array(e.buffer,e.byteOffset+4,t))}function vc(e){e instanceof fc&&(e.timestamp=BigInt(Date.now())),e.checksum=_c(e)}var yc=class extends o{flags=[];name=`sbfs`;type=1935828595;get uuid(){return D(this.superblock.uuid)}superblock;_view;_u8;constructor(...e){if(super(...e),this.byteLength<B(hc)+B(fc))throw de(P(`EINVAL`,`sbfs: Buffer is too small for a file system`));this._view=new DataView(this.buffer,this.byteOffset,this.byteLength),this._u8=new Uint8Array(this.buffer,this.byteOffset,this.byteLength),this.superblock=new hc(this.buffer,this.byteOffset)}*keys(){let e=new Set;for(let t=this.superblock.metadata;t;t=t.previous){t.waitUnlocked();for(let n of t.items)!n.offset||e.has(n.id)||(e.add(n.id),yield n.id)}}get(e){for(let t=this.superblock.metadata;t;t=t.previous){t.waitUnlocked();for(let n of t.items){if(!n.offset||n.id!=e)continue;let t=this.byteOffset+n.offset;return new Uint8Array(this.buffer.slice(t,t+n.size))}}}set(e,t){let n={stack:[],error:void 0,hasError:!1};try{if(e===0&&t.length<B(K))throw ue(P(`EIO`,`sbfs: tried to set ${t.length} bytes for id 0!`));for(let n=this.superblock.metadata;n;n=n.previous){n.waitUnlocked();for(let r of n.items){let i={stack:[],error:void 0,hasError:!1};try{if(!r.offset||r.id!=e)continue;if(ac(i,n.lock(),!1),t.length==r.size){this._u8.set(t,r.offset);return}if(t.length<r.size||this.superblock.isUnused(r.offset,t.length)){this._u8.set(t,r.offset),r.size=t.length,vc(n);return}r.offset=Number(Atomics.add(this.superblock,mc,BigInt(t.length))),r.size=t.length,this._u8.set(t,r.offset),vc(n),vc(this.superblock);return}catch(e){i.error=e,i.hasError=!0}finally{oc(i)}}}let r=Array.from(this.superblock.metadata.items).find(e=>!e.offset);r||=(this.superblock.rotateMetadata(),this.superblock.metadata.items[0]),ac(n,this.superblock.metadata.lock(),!1);let i=Number(Atomics.add(this.superblock,mc,BigInt(t.length)));r.id=e,r.offset=i,r.size=t.length,this._u8.set(t,i),vc(this.superblock.metadata),vc(this.superblock)}catch(e){n.error=e,n.hasError=!0}finally{oc(n)}}delete(e){for(let t=this.superblock.metadata;t;t=t.previous){t.waitUnlocked();for(let n of t.items)if(n.id==e){n.offset=0,n.size=0,n.id=0,vc(t);return}}}_fs;get fs(){return this._fs}set fs(e){this.buffer.constructor.name===`SharedArrayBuffer`&&e?.attributes.set(`no_id_tables`,!0),this._fs=e}sync(){return Promise.resolve()}usage(){return{totalSpace:Number(this.superblock.total_bytes),freeSpace:Number(this.superblock.total_bytes-this.superblock.used_bytes)}}transaction(){return new sr(this)}},bc={name:`SingleBuffer`,options:{buffer:{type:`object`,required:!0}},create(e){let t=new or(ArrayBuffer.isView(e.buffer)?new yc(e.buffer.buffer,e.buffer.byteOffset,e.buffer.byteLength):new yc(e.buffer));return t.checkRootSync(),t}},$=()=>{};async function xc(e){let t=[];for await(let n of e)t.push(n);return t}function Sc(e,t,n=$){vo.call(this,e,t).then(()=>n(null)).catch(n)}function Cc(e,t=$){yo.call(this,e).then(t).catch(()=>t(!1))}function wc(e,t,n=$){n=typeof t==`function`?t:n,bo.call(this,e,typeof t==`function`?{}:t).then(e=>n(null,e)).catch(n)}function Tc(e,t,n=$){n=typeof t==`function`?t:n,xo.call(this,e,typeof t==`function`?{}:t).then(e=>n(null,e)).catch(n)}function Ec(e,t=0,n=$){n=typeof t==`function`?t:n;let r=typeof t==`number`?t:0;So.call(this,e,r).then(()=>n(null)).catch(n)}function Dc(e,t=$){Co.call(this,e).then(()=>t(null)).catch(t)}function Oc(e,t,n,r=$){let i=on(n,420);r=typeof n==`function`?n:r,wo.call(this,e,t,i).then(e=>r(null,e.fd)).catch(r)}function kc(e,t,n=$){n=typeof t==`function`?t:n,To.call(this,e,typeof t==`function`?null:t).then(e=>n(null,e)).catch(n)}function Ac(e,t,n,r=$){r=typeof n==`function`?n:r,Eo.call(this,e,t,typeof n==`function`?null:n).then(()=>r(null)).catch(r)}function jc(e,t,n,r=$){let i=typeof n==`function`?void 0:n;r=typeof n==`function`?n:r,Do.call(this,e,t,i).then(()=>r(null)).catch(r)}function Mc(e,t,n=$){n=typeof t==`function`?t:n,new _o(this,e).stat().then(e=>n(null,typeof t==`object`&&t?.bigint?new Mn(e):e)).catch(n)}function Nc(e,t=$){new _o(this,e).close().then(()=>t(null)).catch(t)}function Pc(e,t,n=$){let r=typeof t==`number`?t:0;n=typeof t==`function`?t:n;let i=new _o(this,e);if(r<0)throw P(`EINVAL`);i.truncate(r).then(()=>n(null)).catch(n)}function Fc(e,t=$){new _o(this,e).sync().then(()=>t(null)).catch(t)}function Ic(e,t=$){new _o(this,e).datasync().then(()=>t(null)).catch(t)}function Lc(e,t,n,r,i,a=$){let o,s,c,l,u,d=new _o(this,e),f=[n,r,i].find(e=>typeof e==`function`)??a;typeof t==`string`?(l=typeof n==`number`?n:null,u=typeof r==`string`?r:`utf8`,o=Y.Buffer.from(t,u),s=0,c=o.byteLength):(o=Y.Buffer.from(t.buffer,t.byteOffset,t.byteLength),s=typeof n==`number`?n:0,c=typeof r==`number`?r:o.byteLength-s,l=typeof i==`number`?i:null),d.write(o,s,c,l).then(({bytesWritten:e})=>f(null,e,typeof t==`string`?t:o)).catch(f)}function Rc(e,t,n,r,i,a=$){new _o(this,e).read(t,n,r,i).then(({bytesRead:e,buffer:t})=>a(null,e,t)).catch(a)}function zc(e,t,n,r=$){new _o(this,e).chown(t,n).then(()=>r(null)).catch(r)}function Bc(e,t,n){new _o(this,e).chmod(t).then(()=>n(null)).catch(n)}function Vc(e,t,n,r=$){new _o(this,e).utimes(t,n).then(()=>r(null)).catch(r)}function Hc(e,t=$){Oo.call(this,e).then(()=>t(null)).catch(t)}function Uc(e,t,n=$){ko.call(this,e,t).then(()=>n(null)).catch(n)}function Wc(e,t,n=$){n=typeof t==`function`?t:n;let r=typeof t==`function`?{}:t;Ao.call(this,e,r).then(e=>n(null,e)).catch(n)}function Gc(e,t,n=$){jo.call(this,e,t).then(()=>n(null)).catch(n)}function Kc(e,t,n,r=$){let i=typeof n==`string`?n:`file`;r=typeof n==`function`?n:r,Mo.call(this,e,t,i).then(()=>r(null)).catch(r)}function qc(e,t,n=$){n=typeof t==`function`?t:n,No.call(this,e).then(e=>n(null,e)).catch(n)}function Jc(e,t,n,r=$){Po.call(this,e,t,n).then(()=>r(null)).catch(r)}function Yc(e,t,n,r=$){Fo.call(this,e,t,n).then(()=>r(null)).catch(r)}function Xc(e,t,n=$){Io.call(this,e,t).then(()=>n(null)).catch(n)}function Zc(e,t,n=$){Lo.call(this,e,t).then(()=>n(null)).catch(n)}function Qc(e,t,n,r=$){Ro.call(this,e,t,n).then(()=>r(null)).catch(r)}function $c(e,t,n,r=$){zo.call(this,e,t,n).then(()=>r(null)).catch(r)}function el(e,t,n=$){n=typeof t==`function`?t:n,Bo.call(this,e,typeof t==`function`?null:t).then(e=>n(null,e)).catch(n)}function tl(e,t,n=$){let r=typeof t==`number`?t:4;n=typeof t==`function`?t:n,Ho.call(this,e,r).then(()=>n(null)).catch(n)}var nl=new Map;function rl(e,t,n){let r=H(e),i=typeof t==`function`?{}:t;if(typeof t==`function`&&(n=t),!n)throw N(`EINVAL`,`watch`,e.toString());if(nl.has(r)){let e=nl.get(r);e&&e.listeners.add(n);return}let a=new ha(this,r,i);a.on(`change`,(e,t)=>{let n=nl.get(r);if(n)for(let r of n.listeners)r(e,t)}),nl.set(r,{watcher:a,listeners:new Set([n])})}function il(e,t=$){let n=H(e),r=nl.get(n);r&&(t&&t!==$?r.listeners.delete(t):r.listeners.clear(),r.listeners.size===0&&(r.watcher.stop(),nl.delete(n)))}function al(e,t,n){let r=new ma(this,H(e),typeof t==`object`?t:{});return n=typeof t==`function`?t:n,r.on(`change`,n||$),r}function ol(e,t){t=typeof t==`object`?t:{encoding:t};let n=wo.call(this,e,`r`,t?.mode);return new lo({...t,autoClose:!0},n)}function sl(e,t){t=typeof t==`object`?t:{encoding:t};let n=wo.call(this,e,`w`,t?.mode);return new uo(t,n)}function cl(e,t,n=$){n=typeof t==`function`?t:n,Uo.call(this,e,typeof t==`function`?void 0:t).then(()=>n(null)).catch(n)}function ll(e,t,n=$){n=typeof t==`function`?t:n,Wo.call(this,e,typeof t==`function`?null:t).then(e=>n(null,e)).catch(n)}function ul(e,t,n,r=$){r=typeof n==`function`?n:r,Ko.call(this,e,t,typeof n==`function`?void 0:n).then(()=>r(null)).catch(r)}function dl(e,t,n,r=$){r=typeof n==`function`?n:r,new _o(this,e).readv(t,typeof n==`function`?void 0:n).then(({buffers:e,bytesRead:t})=>r(null,t,e)).catch(r)}function fl(e,t,n,r=$){r=typeof n==`function`?n:r,new _o(this,e).writev(t,typeof n==`function`?void 0:n).then(({buffers:e,bytesWritten:t})=>r(null,t,e)).catch(r)}function pl(e,t,n=$){n=typeof t==`function`?t:n,qo.call(this,e,typeof t==`function`?void 0:t).then(e=>n(null,e)).catch(n)}function ml(e,t,n,r=$){r=typeof n==`function`?n:r,Jo.call(this,e,t,typeof n==`function`?void 0:n).then(()=>r(null)).catch(r)}function hl(e,t,n=$){n=typeof t==`function`?t:n,Yo.call(this,e,typeof t==`function`?void 0:t).then(e=>n(null,e)).catch(n)}async function gl(e,t){let n=await wo.call(this,e.toString(),`r`),r=await n.readFile();return await n.close(),new Blob([r],t)}function _l(e,t,n=$){n=typeof t==`function`?t:n,xc(Xo.call(this,e,typeof t==`function`?void 0:t)).then(e=>n(null,e??[])).catch(e=>n(e))}function vl(e,t){return Object.assign(Error(t),{code:e})}function yl(e,t,n){return vl(`ERR_INVALID_ARG_TYPE`,`The "${e}" argument must be of type ${t}. Received ${typeof n}`)}function bl(e){return vl(`ERR_INVALID_STATE`,`Invalid state: `+e)}function xl(e,t){if(typeof e!=`number`)throw yl(t,`number`,e);if(!Number.isInteger(e)||e<0||e>4294967295)throw vl(`ERR_OUT_OF_RANGE`,`The value of "${t}" is out of range. It must be an integer >= 0 and <= 4294967295. Received ${e}`)}var Sl=16384,Cl=100,wl=Y.Buffer.alloc(0),Tl={open:Oc,openSync:Di,close:Nc,write:Lc,writeSync:Li,fsync:Fc,fsyncSync:Fi,mkdir:Uc,mkdirSync:Ui};function El(e,t,n){if(typeof e==`string`){if(Y.Buffer.byteLength(e)===n)n=e.length;else{let t=Y.Buffer.from(e);for(;n>0&&(t[n]&192)==128;)n--;n=t.subarray(0,n).toString().length}}return{writingBuf:e.slice(n),len:Math.max(t-n,0)}}function Dl(e,t){return e.length?e.length==1?e[0]:Y.Buffer.concat(e,t):wl}var Ol=Symbol(`Utf8StreamFS`),kl=class extends u.default{#e=0;#t=-1;#n=[];#r=[];#i=!1;#a=!1;#o=!1;#s=!1;#c=!1;#l=16387;#u=null;#d=!1;#f=0;#p=0;#m=Sl;#h=!1;#g=0;#_;#v=!1;#y=!1;#b=!0;#x;#S=()=>!0;#C=!1;#w;#T=``;#E;static[Ol]=Tl;static _withContext(e){Le(e);class t extends kl{static[Ol]=_(Tl,e)}return t}constructor(e={}){if(typeof e!=`object`||!e)throw yl(`options`,`object`,e);let{dest:t,minLength:n,maxLength:r,maxWrite:i,periodicFlush:a,sync:o,append:s=!0,mkdir:c,retryEAGAIN:l,fsync:u,contentMode:d=`utf8`,mode:f,fs:p={}}=e;super();let m=e.fd??t;if(typeof p!=`object`||!p)throw yl(`options.fs`,`object`,p);this.#E={...this.constructor[Ol],...p};let h=this.#E;for(let e of[`write`,`writeSync`,`fsync`,`fsyncSync`,`close`,`open`,`mkdir`,`mkdirSync`])if(typeof h[e]!=`function`)throw yl(`options.fs.${e}`,`function`,h[e]);this.#l=Math.max(n||0,this.#l),this.#f=n||0,this.#p=r||0,this.#m=i||Sl,this.#g=a||0,this.#v=o||!1,this.#y=u||!1,this.#b=s||!1,this.#x=f,this.#S=l||(()=>!0),this.#C=c||!1,xl(this.#l,`options.hwm`),xl(this.#f,`options.minLength`),xl(this.#p,`options.maxLength`),xl(this.#m,`options.maxWrite`),xl(this.#g,`options.periodicFlush`);for(let[e,t]of[[`sync`,this.#v],[`fsync`,this.#y],[`append`,this.#b],[`mkdir`,this.#C]])if(typeof t!=`boolean`)throw yl(`options.${e}`,`boolean`,t);if(typeof this.#S!=`function`)throw yl(`options.retryEAGAIN`,`function`,this.#S);if(d!=`buffer`&&d!=`utf8`)throw vl(`ERR_INVALID_ARG_VALUE`,`The property 'options.contentMode' must be one of: 'buffer', 'utf8'. Received ${JSON.stringify(d)}`);if(this.#w=d,this.#T=d==`buffer`?wl:``,typeof m==`number`)this.#t=m,queueMicrotask(()=>this.emit(`ready`));else if(typeof m==`string`)this.#N(m);else throw yl(`fd`,`number or string`,m);if(this.#f>=this.#m)throw vl(`ERR_INVALID_ARG_VALUE`,`The argument 'minLength' should be smaller than maxWrite (${this.#m}). Received ${this.#f}`);this.#g!==0&&(this.#_=setInterval(()=>this.flush(),this.#g),this.#_.unref?.())}write(e){if(this.#d)throw bl(`Utf8Stream is destroyed`);if(this.#w==`buffer`){if(!Y.Buffer.isBuffer(e))throw yl(`data`,`Buffer`,e)}else if(typeof e!=`string`)throw yl(`data`,`string`,e);let t=this.#e+e.length;if(this.#p&&t>this.#p)return this.emit(`drop`,e),this.#e<this.#l;let n=this.#n.length-1;if(this.#w==`buffer`){let t=this.#n;!t.length||this.#r[n]+e.length>this.#m?(t.push([e]),this.#r.push(e.length)):(t[n].push(e),this.#r[n]+=e.length)}else{let t=this.#n;!t.length||t[n].length+e.length>this.#m?t.push(e):t[n]+=e}return this.#e=t,!this.#i&&this.#e>=this.#f&&this.#F(),this.#e<this.#l}flush(e){if(e!=null&&typeof e!=`function`)throw yl(`cb`,`function`,e);if(this.#d){let t=bl(`Utf8Stream is destroyed`);if(!e)throw t;e(t);return}if(this.#f<=0){e?.(null);return}e&&this.#I(e),!this.#i&&(this.#n.length||(this.#n.push(this.#w==`buffer`?[]:``),this.#w==`buffer`&&this.#r.push(0)),this.#F())}flushSync(){if(this.#d)throw bl(`Utf8Stream is destroyed`);if(this.#t<0)throw bl(`Invalid file descriptor`);this.#w==`buffer`?this.#D():this.#O()}#D(){let e=this.#n;!this.#i&&this.#T.length>0&&(e.unshift([this.#T]),this.#T=wl);let t=wl;for(;e.length||t.length;){t.length<=0&&(t=Dl(e[0],this.#r[0]));let n=this.#E.writeSync(this.#t,t);t=t.subarray(n),this.#e=Math.max(this.#e-n,0),t.length<=0&&(e.shift(),this.#r.shift())}}#O(){let e=this.#n;!this.#i&&this.#T.length>0&&(e.unshift(this.#T),this.#T=``);let t=``;for(;e.length||t;){t.length<=0&&(t=e[0]);let n=this.#E.writeSync(this.#t,t,`utf8`),r=El(t,this.#e,n);t=r.writingBuf,this.#e=r.len,t.length<=0&&e.shift()}try{this.#E.fsyncSync(this.#t)}catch{}}reopen(e){if(this.#d)throw bl(`Utf8Stream is destroyed`);if(this.#h){this.once(`ready`,()=>this.reopen(e));return}if(this.#a)return;if(!this.#u)throw vl(`ERR_OPERATION_FAILED`,`Unable to reopen a file descriptor, you must pass a file to Utf8Stream`);if(e&&(this.#u=e.toString()),this.#o=!0,this.#i)return;let t=this.#t;this.once(`ready`,()=>{t!==this.#t&&this.#E.close(t,e=>{e&&this.emit(`error`,e)})}),this.#N(this.#u)}end(){if(this.#d)throw bl(`Utf8Stream is destroyed`);if(this.#h){this.once(`ready`,()=>this.end());return}this.#a||(this.#a=!0,!this.#i&&(this.#e>0&&this.#t>=0?this.#F():this.#P()))}destroy(){this.#d||this.#P()}get mode(){return this.#x}get file(){return this.#u}get fd(){return this.#t}get minLength(){return this.#f}get maxLength(){return this.#p}get writing(){return this.#i}get sync(){return this.#v}get fsync(){return this.#y}get append(){return this.#b}get periodicFlush(){return this.#g}get contentMode(){return this.#w}get mkdir(){return this.#C}[Symbol.dispose](){this.destroy()}#k(){this.listenerCount(`drain`)&&(this.#s=!1,this.emit(`drain`))}#A(e,t=0){if(e){!this.#v&&(e.code===`EAGAIN`||e.code===`EBUSY`)&&this.#S(e,this.#T.length,this.#e-this.#T.length)?setTimeout(()=>this.#j(),Cl):(this.#i=!1,this.emit(`error`,e));return}this.emit(`write`,t);let n=El(this.#T,this.#e,t);if(this.#e=n.len,this.#T=n.writingBuf,this.#T.length){if(!this.#v){this.#j();return}try{do{let e=this.#M(),t=El(this.#T,this.#e,e);this.#e=t.len,this.#T=t.writingBuf}while(this.#T.length)}catch(e){this.#A(e);return}}this.#y&&this.#E.fsyncSync(this.#t);let r=this.#e;this.#o?(this.#i=!1,this.#o=!1,this.reopen()):r>this.#f?this.#F():this.#a?r>0?this.#F():(this.#i=!1,this.#P()):(this.#i=!1,this.#v?this.#s||(this.#s=!0,queueMicrotask(()=>this.#k())):this.emit(`drain`))}#j(){this.#w==`buffer`?this.#E.write(this.#t,this.#T,(e,t)=>this.#A(e,t)):this.#E.write(this.#t,this.#T,`utf8`,(e,t)=>this.#A(e,t))}#M(){return this.#w==`buffer`?this.#E.writeSync(this.#t,this.#T):this.#E.writeSync(this.#t,this.#T,`utf8`)}#N(e){this.#h=!0,this.#i=!0,this.#s=!1;let t=(t,n=-1)=>{if(t){this.#o=!1,this.#i=!1,this.#h=!1,this.#v?queueMicrotask(()=>void(this.listenerCount(`error`)&&this.emit(`error`,t))):this.emit(`error`,t);return}let r=this.#o;this.#t=n,this.#u=e,this.#o=!1,this.#h=!1,this.#i=!1,this.#v?queueMicrotask(()=>this.emit(`ready`)):this.emit(`ready`),!this.#d&&(!this.#i&&this.#e>this.#f||this.#c?this.#F():r&&queueMicrotask(()=>this.emit(`drain`)))},n=this.#b?`a`:`w`,r=this.#x??438;if(this.#v)try{this.#C&&this.#E.mkdirSync(W(e),{recursive:!0}),t(null,this.#E.openSync(e,n,r))}catch(e){throw t(e),e}else this.#C?this.#E.mkdir(W(e),{recursive:!0},i=>{if(i)return t(i);this.#E.open(e,n,r,t)}):this.#E.open(e,n,r,t)}#P(){if(this.#t===-1){this.once(`ready`,()=>this.#P());return}this.#_!==void 0&&clearInterval(this.#_),this.#d=!0,this.#n=[],this.#r=[];let e=e=>{if(e){this.emit(`error`,e);return}this.#a&&!this.#i&&this.emit(`finish`),this.emit(`close`)},t=()=>{this.#t!==1&&this.#t!==2?this.#E.close(this.#t,e):e(null)};try{this.#E.fsync(this.#t,t)}catch{}}#F(){if(this.#i=!0,this.#w==`buffer`?this.#T=this.#T.length?this.#T:Dl(this.#n.shift()??[],this.#r.shift()??0):this.#T||=this.#n.shift()||``,!this.#v){this.#j();return}try{this.#A(null,this.#M())}catch(e){this.#A(e)}}#I(e){this.#c=!0;let t=()=>{if(this.#y||this.#d)this.#c=!1,e(null);else try{this.#E.fsync(this.#t,t=>{this.#c=!1,e(t?.code==`EBADF`?null:t)})}catch(t){this.#c=!1,e(t)}this.off(`error`,n)},n=n=>{this.#c=!1,e(n),this.off(`drain`,t)};this.once(`drain`,t),this.once(`error`,n)}on(e,t,n){return e===`drain`&&(this.#s=!1),super.on(e,t,n)}addListener(e,t,n){return this.on(e,t,n)}once(e,t,n){return e===`drain`&&(this.#s=!1),super.once(e,t,n)}off(e,t,n,r){return super.off(e,t,n,r)}removeListener(e,t,n,r){return super.removeListener(e,t,n,r)}setMaxListeners(){throw N(`ENOSYS`,`Utf8Stream.setMaxListeners`)}getMaxListeners(){throw N(`ENOSYS`,`Utf8Stream.getMaxListeners`)}prependListener(){throw N(`ENOSYS`,`Utf8Stream.prependListener`)}prependOnceListener(){throw N(`ENOSYS`,`Utf8Stream.prependOnceListener`)}rawListeners(){throw N(`ENOSYS`,`Utf8Stream.rawListeners`)}},Al=t({BigIntStatsFs:()=>Fn,Dir:()=>vi,Dirent:()=>gi,ReadStream:()=>lo,Stats:()=>jn,StatsFs:()=>Pn,Utf8Stream:()=>kl,WriteStream:()=>uo,access:()=>tl,accessSync:()=>ta,appendFile:()=>jc,appendFileSync:()=>ji,chmod:()=>Xc,chmodSync:()=>Xi,chown:()=>Jc,chownSync:()=>Ji,close:()=>Nc,closeSync:()=>Ni,constants:()=>He,copyFile:()=>ul,copyFileSync:()=>aa,cp:()=>ml,cpSync:()=>la,createReadStream:()=>ol,createWriteStream:()=>sl,exists:()=>Cc,existsSync:()=>Si,fchmod:()=>Bc,fchmodSync:()=>Bi,fchown:()=>zc,fchownSync:()=>zi,fdatasync:()=>Ic,fdatasyncSync:()=>Ii,fstat:()=>Mc,fstatSync:()=>Mi,fsync:()=>Fc,fsyncSync:()=>Fi,ftruncate:()=>Pc,ftruncateSync:()=>Pi,futimes:()=>Vc,futimesSync:()=>Vi,glob:()=>_l,globSync:()=>da,lchmod:()=>Zc,lchmodSync:()=>Zi,lchown:()=>Yc,lchownSync:()=>Yi,link:()=>Gc,linkSync:()=>Gi,lopenSync:()=>Oi,lstat:()=>Tc,lstatSync:()=>wi,lutimes:()=>$c,lutimesSync:()=>$i,mkdir:()=>Uc,mkdirSync:()=>Ui,mkdtemp:()=>ll,mkdtempDisposableSync:()=>ia,mkdtempSync:()=>ra,open:()=>Oc,openAsBlob:()=>gl,openSync:()=>Di,opendir:()=>pl,opendirSync:()=>ca,promises:()=>fo,read:()=>Rc,readFile:()=>kc,readFileSync:()=>ki,readSync:()=>Ri,readdir:()=>Wc,readdirSync:()=>Wi,readlink:()=>qc,readlinkSync:()=>qi,readv:()=>dl,readvSync:()=>oa,realpath:()=>el,realpathSync:()=>ea,rename:()=>Sc,renameSync:()=>xi,rm:()=>cl,rmSync:()=>na,rmdir:()=>Hc,rmdirSync:()=>Hi,stat:()=>wc,statSync:()=>Ci,statfs:()=>hl,statfsSync:()=>ua,symlink:()=>Kc,symlinkSync:()=>Ki,truncate:()=>Ec,truncateSync:()=>Ti,unlink:()=>Dc,unlinkSync:()=>Ei,unwatchFile:()=>il,utimes:()=>Qc,utimesSync:()=>Qi,watch:()=>al,watchFile:()=>rl,write:()=>Lc,writeFile:()=>Ac,writeFileSync:()=>Ai,writeSync:()=>Li,writev:()=>fl,writevSync:()=>sa}),jl=t({get:()=>Pl,getSync:()=>Fl,list:()=>Bl,listSync:()=>Vl,remove:()=>Rl,removeSync:()=>zl,set:()=>Il,setSync:()=>Ll}),Ml=[];function Nl(e,t,n,r){if(!t.startsWith(`user.`)&&!Ml.includes(t))throw N(`ENOTSUP`,r,n)}async function Pl(e,t,n={}){e=H(e);let{fs:r,path:i}=Z(e,this);Nl(this,t,e,`xattr.get`);let a=await r.stat(i).catch(F(`xattr.get`,e));if(X&&!J(this,a,4))throw N(`EACCES`,`xattr.get`,e);a.attributes??=new zn;let o=a.attributes.get(t);if(!o)throw N(`ENODATA`,`xattr.get`,e);let s=Y.Buffer.from(o);return n.encoding==`buffer`||!n.encoding?s:s.toString(n.encoding)}function Fl(e,t,n={}){e=H(e),Nl(this,t,e,`xattr.get`);let{fs:r,path:i}=Z(e,this),a;try{a=r.statSync(i)}catch(t){throw j(Object.assign(t,{path:e}))}if(X&&!J(this,a,4))throw N(`EACCES`,`xattr.get`,e);a.attributes??=new zn;let o=a.attributes.get(t);if(!o)throw N(`ENODATA`,`xattr.get`,e);let s=Y.Buffer.from(o);return n.encoding==`buffer`||!n.encoding?s:s.toString(n.encoding)}async function Il(e,t,n,r={}){e=H(e);let{fs:i,path:a}=Z(e,this);Nl(this,t,e,`xattr.set`);let o=await i.stat(a).catch(F(`xattr.set`,e));if(X&&!J(this,o,2))throw N(`EACCES`,`xattr.set`,e);o.attributes??=new zn;let s=o.attributes.get(t);if(r.create&&s)throw N(`EEXIST`,`xattr.set`,e);if(r.replace&&!s)throw N(`ENODATA`,`xattr.set`,e);o.attributes.set(t,Y.Buffer.from(n)),await i.touch(a,o).catch(F(`xattr.set`,e))}function Ll(e,t,n,r={}){e=H(e);let{fs:i,path:a}=Z(e,this);Nl(this,t,e,`xattr.set`);let o;try{o=i.statSync(a)}catch(t){throw j(Object.assign(t,{path:e}))}if(X&&!J(this,o,2))throw N(`EACCES`,`xattr.set`,e);o.attributes??=new zn;let s=o.attributes.get(t);if(r.create&&s)throw N(`EEXIST`,`xattr.set`,e);if(r.replace&&!s)throw N(`ENODATA`,`xattr.set`,e);o.attributes.set(t,Y.Buffer.from(n));try{i.touchSync(a,o)}catch(t){throw j(Object.assign(t,{path:e}))}}async function Rl(e,t){e=H(e);let{fs:n,path:r}=Z(e,this);Nl(this,t,e,`xattr.remove`);let i=await n.stat(r).catch(F(`xattr.remove`,e));if(X&&!J(this,i,2))throw N(`EACCES`,`xattr.remove`,e);if(i.attributes??=new zn,!i.attributes.get(t))throw N(`ENODATA`,`xattr.remove`,e);i.attributes.remove(t),await n.touch(r,i)}function zl(e,t){e=H(e);let{fs:n,path:r}=Z(e,this);Nl(this,t,e,`xattr.remove`);let i;try{i=n.statSync(r)}catch(t){throw j(Object.assign(t,{path:e}))}if(X&&!J(this,i,2))throw N(`EACCES`,`xattr.remove`,e);if(i.attributes??=new zn,!i.attributes.get(t))throw N(`ENODATA`,`xattr.remove`,e);i.attributes.remove(t);try{n.touchSync(r,i)}catch(t){throw j(Object.assign(t,{path:e}))}}async function Bl(e){e=H(e);let{fs:t,path:n}=Z(e,this),r=await t.stat(n).catch(F(`xattr.list`,e));return r.attributes?[...r.attributes.keys()]:[]}function Vl(e){e=H(e);let{fs:t,path:n}=Z(e,this),r;try{r=t.statSync(n)}catch(t){throw j(Object.assign(t,{path:e}))}return r.attributes?[...r.attributes.keys()]:[]}var Hl=new Map;function Ul(e={}){let t=ze(this);if(!Ci.call(this,t.root).isDirectory())throw N(`ENOTDIR`,{syscall:`chroot`,path:t.root});let n=Ve(t,e),r=Object.assign(n,{fs:{..._(Al,n),Utf8Stream:kl._withContext(n),promises:_(fo,n),xattr:_(jl,n)},path:_(gn,n),bind:e=>{let t=Ul.call(n,e);return n.children.push(t),t}});return Hl.set(n.id,r),r}var Wl=function(e,t,n){if(t!=null){if(typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Object expected.`);var r,i;if(n){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);r=t[Symbol.dispose],n&&(i=r)}if(typeof r!=`function`)throw TypeError(`Object not disposable.`);i&&(r=function(){try{i.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t},Gl=(function(e){return function(t){function n(n){t.error=t.hasError?new e(n,t.error,`An error was suppressed during disposal.`):n,t.hasError=!0}var r,i=0;function a(){for(;r=t.stack.pop();)try{if(!r.async&&i===1)return i=0,t.stack.push(r),Promise.resolve().then(a);if(r.dispose){var e=r.dispose.call(r.value);if(r.async)return i|=2,Promise.resolve(e).then(a,function(e){return n(e),a()})}else i|=1}catch(e){n(e)}if(i===1)return t.hasError?Promise.reject(t.error):Promise.resolve();if(t.hasError)throw t.error}return a()}})(typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var r=Error(n);return r.name=`SuppressedError`,r.error=e,r.suppressed=t,r}),Kl=class{previous;current=Promise.withResolvers();_isLocked=!0;get isLocked(){return this._isLocked}constructor(e){this.previous=e}async done(){await this.previous?.done(),await this.current.promise}unlock(){this.current.resolve(),this._isLocked=!1}[Symbol.dispose](){this.unlock()}},ql=class{_fs;get type(){return this._fs.type}get name(){return this._fs.name}get label(){return this._fs.label}set label(e){this._fs.label=e}get attributes(){return this._fs.attributes}get _uuid(){return this._fs._uuid}set _uuid(e){this._fs._uuid=e}get uuid(){return this._fs.uuid}async ready(){return await this._fs.ready()}readySync(){return this._fs.readySync()}usage(){return this._fs.usage()}currentLock;addLock(){let e=new Kl(this.currentLock);return this.currentLock=e,e}async lock(e=5e3){let t=this.currentLock,n=this.addLock(),r=Error().stack;return setTimeout(()=>{if(n.isLocked){let e=P(`EDEADLK`);throw e.stack+=r?.slice(5),L(e)}},e),await t?.done(),n}lockSync(){if(this.currentLock?.isLocked)throw L(P(`EBUSY`));return this.addLock()}get isLocked(){return!!this.currentLock?.isLocked}async rename(e,t){let n={stack:[],error:void 0,hasError:!1};try{Wl(n,await this.lock(),!1),await this._fs.rename(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}renameSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.renameSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async stat(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,await this.lock(),!1),await this._fs.stat(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}statSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.statSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async touch(e,t){let n={stack:[],error:void 0,hasError:!1};try{Wl(n,await this.lock(),!1),await this._fs.touch(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}touchSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{Wl(n,this.lockSync(),!1),this._fs.touchSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async createFile(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,await this.lock(),!1),await this._fs.createFile(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}createFileSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.createFileSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async unlink(e){let t={stack:[],error:void 0,hasError:!1};try{Wl(t,await this.lock(),!1),await this._fs.unlink(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}unlinkSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.unlinkSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async rmdir(e){let t={stack:[],error:void 0,hasError:!1};try{Wl(t,await this.lock(),!1),await this._fs.rmdir(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}rmdirSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.rmdirSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async mkdir(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,await this.lock(),!1),await this._fs.mkdir(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}mkdirSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.mkdirSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async readdir(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,await this.lock(),!1),await this._fs.readdir(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}readdirSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.readdirSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async exists(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,await this.lock(),!1),await this._fs.exists(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}existsSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.existsSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async link(e,t){let n={stack:[],error:void 0,hasError:!1};try{Wl(n,await this.lock(),!1),await this._fs.link(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}linkSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.linkSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async sync(){let e={stack:[],error:void 0,hasError:!1};try{Wl(e,await this.lock(),!1),await this._fs.sync()}catch(t){e.error=t,e.hasError=!0}finally{Gl(e)}}syncSync(){let e={stack:[],error:void 0,hasError:!1};try{return Wl(e,this.lockSync(),!1),this._fs.syncSync()}catch(t){e.error=t,e.hasError=!0}finally{Gl(e)}}async read(e,t,n,r){let i={stack:[],error:void 0,hasError:!1};try{return Wl(i,await this.lock(),!1),await this._fs.read(e,t,n,r)}catch(e){i.error=e,i.hasError=!0}finally{Gl(i)}}readSync(e,t,n,r){let i={stack:[],error:void 0,hasError:!1};try{return Wl(i,this.lockSync(),!1),this._fs.readSync(e,t,n,r)}catch(e){i.error=e,i.hasError=!0}finally{Gl(i)}}async write(e,t,n){let r={stack:[],error:void 0,hasError:!1};try{return Wl(r,await this.lock(),!1),await this._fs.write(e,t,n)}catch(e){r.error=e,r.hasError=!0}finally{Gl(r)}}writeSync(e,t,n){let r={stack:[],error:void 0,hasError:!1};try{return Wl(r,this.lockSync(),!1),this._fs.writeSync(e,t,n)}catch(e){r.error=e,r.hasError=!0}finally{Gl(r)}}streamRead(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.streamRead(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}streamWrite(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.streamWrite(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}};function Jl(e){class t extends ql{constructor(...t){super(),this._fs=new e(...t)}}return t}function Yl(e){class t extends e{constructor(...e){super(...e),this.attributes.set(`no_write`)}async rename(){throw P(`EROFS`)}renameSync(){throw P(`EROFS`)}async createFile(){throw P(`EROFS`)}createFileSync(){throw P(`EROFS`)}async unlink(){throw P(`EROFS`)}unlinkSync(){throw P(`EROFS`)}async rmdir(){throw P(`EROFS`)}rmdirSync(){throw P(`EROFS`)}async mkdir(){throw P(`EROFS`)}mkdirSync(){throw P(`EROFS`)}async link(){throw P(`EROFS`)}linkSync(){throw P(`EROFS`)}async touch(){throw P(`EROFS`)}touchSync(){throw P(`EROFS`)}async sync(){throw P(`EROFS`)}syncSync(){throw P(`EROFS`)}async write(){throw P(`EROFS`)}writeSync(){throw P(`EROFS`)}streamWrite(){throw P(`EROFS`)}}return t}function Xl(e){class t extends e{async exists(e){return this.existsSync(e)}async rename(e,t){return this.renameSync(e,t)}async stat(e){return this.statSync(e)}async touch(e,t){return this.touchSync(e,t)}async createFile(e,t){return this.createFileSync(e,t)}async unlink(e){return this.unlinkSync(e)}async rmdir(e){return this.rmdirSync(e)}async mkdir(e,t){return this.mkdirSync(e,t)}async readdir(e){return this.readdirSync(e)}async link(e,t){return this.linkSync(e,t)}async sync(){return this.syncSync()}async read(e,t,n,r){return this.readSync(e,t,n,r)}async write(e,t,n){return this.writeSync(e,t,n)}}return t}var Zl=function(e,t,n,r,i,a){function o(e){if(e!==void 0&&typeof e!=`function`)throw TypeError(`Function expected`);return e}for(var s=r.kind,c=s===`getter`?`get`:s===`setter`?`set`:`value`,l=!t&&e?r.static?e:e.prototype:null,u=t||(l?Object.getOwnPropertyDescriptor(l,r.name):{}),d,f=!1,p=n.length-1;p>=0;p--){var m={};for(var h in r)m[h]=h===`access`?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.addInitializer=function(e){if(f)throw TypeError(`Cannot add initializers after decoration has completed`);a.push(o(e||null))};var g=(0,n[p])(s===`accessor`?{get:u.get,set:u.set}:u[c],m);if(s===`accessor`){if(g===void 0)continue;if(typeof g!=`object`||!g)throw TypeError(`Object expected`);(d=o(g.get))&&(u.get=d),(d=o(g.set))&&(u.set=d),(d=o(g.init))&&i.unshift(d)}else(d=o(g))&&(s===`field`?i.unshift(d):u[c]=d)}l&&Object.defineProperty(l,r.name,u),f=!0},Ql=function(e,t,n){for(var r=arguments.length>2,i=0;i<t.length;i++)n=r?t[i].call(e,n):t[i].call(e);return r?n:void 0},$l;(function(e){e[e.RealTime=1]=`RealTime`,e[e.PreAlloc=2]=`PreAlloc`,e[e.Immutable=8]=`Immutable`,e[e.Append=16]=`Append`,e[e.Sync=32]=`Sync`,e[e.NoAtime=64]=`NoAtime`,e[e.NoDump=128]=`NoDump`,e[e.RtInherit=256]=`RtInherit`,e[e.ProjInherit=512]=`ProjInherit`,e[e.NoSymlinks=1024]=`NoSymlinks`,e[e.ExtSize=2048]=`ExtSize`,e[e.ExtSzInherit=4096]=`ExtSzInherit`,e[e.NoDefrag=8192]=`NoDefrag`,e[e.FileStream=16384]=`FileStream`,e[e.Dax=32768]=`Dax`,e[e.CowExtSize=65536]=`CowExtSize`,e[e.HasAttr=2147483648]=`HasAttr`})($l||={});var eu=(()=>{var e,t,n,r,i;let a=[Xt()],s,c=[],l,u=$t(o),d,f=[],p=[],m,h=[],g=[],_,v=[],b=[],x,S=[],C=[],w,T=[],ee=[],E,te=[],ne=[];var D=class extends u{static{l=this}static{let o=typeof Symbol==`function`&&Symbol.metadata?Object.create(u[Symbol.metadata]??null):void 0;d=[(e=V).uint32.bind(e)],m=[(t=V).uint32.bind(t)],_=[(n=V).uint32.bind(n)],x=[(r=V).uint32.bind(r)],w=[(i=V).uint32.bind(i)],E=[V.char(8)],Zl(this,null,d,{kind:`accessor`,name:`xflags`,static:!1,private:!1,access:{has:e=>`xflags`in e,get:e=>e.xflags,set:(e,t)=>{e.xflags=t}},metadata:o},f,p),Zl(this,null,m,{kind:`accessor`,name:`extsize`,static:!1,private:!1,access:{has:e=>`extsize`in e,get:e=>e.extsize,set:(e,t)=>{e.extsize=t}},metadata:o},h,g),Zl(this,null,_,{kind:`accessor`,name:`nextents`,static:!1,private:!1,access:{has:e=>`nextents`in e,get:e=>e.nextents,set:(e,t)=>{e.nextents=t}},metadata:o},v,b),Zl(this,null,x,{kind:`accessor`,name:`projid`,static:!1,private:!1,access:{has:e=>`projid`in e,get:e=>e.projid,set:(e,t)=>{e.projid=t}},metadata:o},S,C),Zl(this,null,w,{kind:`accessor`,name:`cowextsize`,static:!1,private:!1,access:{has:e=>`cowextsize`in e,get:e=>e.cowextsize,set:(e,t)=>{e.cowextsize=t}},metadata:o},T,ee),Zl(this,null,E,{kind:`accessor`,name:`pad`,static:!1,private:!1,access:{has:e=>`pad`in e,get:e=>e.pad,set:(e,t)=>{e.pad=t}},metadata:o},te,ne),Zl(null,s={value:l},a,{kind:`class`,name:l.name,metadata:o},null,c),D=l=s.value,o&&Object.defineProperty(l,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})}static name=`fsxattr`;#e=Ql(this,f,void 0);get xflags(){return this.#e}set xflags(e){this.#e=e}#t=(Ql(this,p),Ql(this,h,void 0));get extsize(){return this.#t}set extsize(e){this.#t=e}#n=(Ql(this,g),Ql(this,v,void 0));get nextents(){return this.#n}set nextents(e){this.#n=e}#r=(Ql(this,b),Ql(this,S,void 0));get projid(){return this.#r}set projid(e){this.#r=e}#i=(Ql(this,C),Ql(this,T,void 0));get cowextsize(){return this.#i}set cowextsize(e){this.#i=e}#a=(Ql(this,ee),Ql(this,te,[]));get pad(){return this.#a}set pad(e){this.#a=e}constructor(e=y(new M(k.EINVAL,`fsxattr must be initialized with an inode`))){super(new ArrayBuffer(B(D))),Ql(this,ne),this.extsize=e.size,this.nextents=1,this.projid=e.uid,this.cowextsize=e.size;for(let t of Object.keys(Vn))e.flags&Vn[t]&&t in $l&&(this.xflags|=$l[t])}static{Ql(l,c)}};return D=l})(),tu;(function(e){e[e.SecureRm=1]=`SecureRm`,e[e.Undelete=2]=`Undelete`,e[e.Compress=4]=`Compress`,e[e.Sync=8]=`Sync`,e[e.Immutable=16]=`Immutable`,e[e.Append=32]=`Append`,e[e.NoDump=64]=`NoDump`,e[e.NoAtime=128]=`NoAtime`,e[e.Dirty=256]=`Dirty`,e[e.CompressBlk=512]=`CompressBlk`,e[e.NoCompress=1024]=`NoCompress`,e[e.Encrypt=2048]=`Encrypt`,e[e.Btree=4096]=`Btree`,e[e.Index=4096]=`Index`,e[e.IMagic=8192]=`IMagic`,e[e.JournalData=16384]=`JournalData`,e[e.NoTail=32768]=`NoTail`,e[e.DirSync=65536]=`DirSync`,e[e.TopDir=131072]=`TopDir`,e[e.HugeFile=262144]=`HugeFile`,e[e.Extent=524288]=`Extent`,e[e.Verity=1048576]=`Verity`,e[e.EaInode=2097152]=`EaInode`,e[e.EofBlocks=4194304]=`EofBlocks`,e[e.NoCow=8388608]=`NoCow`,e[e.Dax=33554432]=`Dax`,e[e.InlineData=268435456]=`InlineData`,e[e.ProjInherit=536870912]=`ProjInherit`,e[e.CaseFold=1073741824]=`CaseFold`,e[e.Reserved=2147483648]=`Reserved`})(tu||={});var nu;(function(e){e[e.GetFlags=2148034049]=`GetFlags`,e[e.SetFlags=1074292226]=`SetFlags`,e[e.GetVersion=2148038145]=`GetVersion`,e[e.SetVersion=1074296322]=`SetVersion`,e[e.Fiemap=3223348747]=`Fiemap`,e[e.GetXattr=2149341215]=`GetXattr`,e[e.SetXattr=1075599392]=`SetXattr`,e[e.GetLabel=2164298801]=`GetLabel`,e[e.SetLabel=1090556978]=`SetLabel`,e[e.GetUUID=2148603136]=`GetUUID`,e[e.GetSysfsPath=2155943169]=`GetSysfsPath`})(nu||={});var ru;(function(e){e[e.GetFlags=2147771905]=`GetFlags`,e[e.SetFlags=1074030082]=`SetFlags`,e[e.GetVersion=2147776001]=`GetVersion`,e[e.SetVersion=1074034178]=`SetVersion`})(ru||={});async function iu(e,t,...n){e=H(e);let{fs:r,path:i}=Z(e,this);try{let e=new K(await r.stat(i));switch(t){case nu.GetFlags:case ru.GetFlags:return e.flags;case nu.SetFlags:case ru.SetFlags:e.flags=n[0],await r.touch(i,e);return;case nu.GetVersion:case ru.GetVersion:return e.version;case nu.SetVersion:case ru.SetVersion:e.version=n[0],await r.touch(i,e);return;case nu.Fiemap:break;case nu.GetXattr:return new eu(e);case nu.SetXattr:break;case nu.GetLabel:return r.label;case nu.SetLabel:r.label=n[0];return;case nu.GetUUID:return r.uuid;case nu.GetSysfsPath:return`/sys/fs/${r.name}/${r.uuid}`}}catch(t){throw j(Object.assign(t,{syscall:`ioctl`,path:e}))}throw N(`ENOTSUP`,`ioctl`,e)}function au(e,t,...n){e=H(e);let{fs:r,path:i}=Z(e,this);try{let e=new K(r.statSync(i));switch(t){case nu.GetFlags:case ru.GetFlags:return e.flags;case nu.SetFlags:case ru.SetFlags:e.flags=n[0],r.touchSync(i,e);return;case nu.GetVersion:case ru.GetVersion:return e.version;case nu.SetVersion:case ru.SetVersion:e.version=n[0],r.touchSync(i,e);return;case nu.Fiemap:break;case nu.GetXattr:return new eu(e);case nu.SetXattr:break;case nu.GetLabel:return r.label;case nu.SetLabel:r.label=n[0];return;case nu.GetUUID:return r.uuid;case nu.GetSysfsPath:return`/sys/fs/${r.name}/${r.uuid}`}}catch(t){throw j(Object.assign(t,{syscall:`ioctl`,path:e}))}throw N(`ENOTSUP`,`ioctl`,e)}var ou={name:`@zenfs/core`,version:`2.6.5`,description:`A filesystem, anywhere`,funding:{type:`individual`,url:`https://github.com/sponsors/james-pre`},main:`dist/index.js`,types:`dist/index.d.ts`,keywords:[`filesystem`,`node`,`storage`,`fs`,`browser`],bin:{"make-index":`scripts/make-index.js`,"zenfs-test":`scripts/test.js`,zci:`scripts/ci-cli.js`},files:[`dist`,`tests`,`types`,`license.md`,`eslint.shared.js`],type:`module`,homepage:`https://zenfs.dev/core`,author:`James Prevett <jp@jamespre.dev> (https://jamespre.dev)`,contributors:[`John Vilk <jvilk@cs.umass.edu>`],license:`LGPL-3.0-or-later`,repository:{type:`git`,url:`git+https://github.com/zen-fs/core.git`},bugs:{url:`https://github.com/zen-fs/core/issues`},engines:{node:`>= 18`},exports:{".":`./dist/index.js`,"./*.js":`./dist/*.js`,"./*":`./dist/*.js`,"./emulation/*":`./dist/node/*`,"./promises":`./dist/node/promises.js`,"./readline":`./dist/node/readline.js`,"./eslint":`./eslint.shared.js`,"./tests/*.ts":`./tests/*.ts`,"./tests/*.js":`./tests/*.js`,"./tests/*":`./tests/*.js`,"./types/*":`./types/*`},publishConfig:{access:`public`,provenance:!0},scripts:{format:`prettier --write .`,"format:check":`prettier --check .`,"spdx:check":`npx lice -a src tests/*.ts tests/**/*.test.ts`,"spdx:fix":`npx lice -aw src tests/*.ts tests/**/*.test.ts`,lint:`eslint src tests`,test:`npx -s zenfs-test --clean; npx -s zenfs-test -abcpn; tests/fetch/run.sh; npx -s zenfs-test --report-only`,"test:native":`npx -s zenfs-test tests/native-setup.ts --verbose`,build:`tsc -p tsconfig.json`,"build:docs":`typedoc`,dev:`tsc -p tsconfig.json --watch`,prepublishOnly:`npm run build`},dependencies:{"@types/node":`^26.0.0`,buffer:`^6.0.3`,eventemitter3:`^5.0.1`,kerium:`^1.4.2`,memium:`^1.0.0`,"readable-stream":`^4.5.2`,utilium:`^3.0.0`},devDependencies:{"@eslint/js":`^10.0.1`,"@octokit/action":`^8.0.4`,c8:`^12.0.0`,eslint:`^10.1.0`,globals:`^17.3.0`,prettier:`^3.2.5`,typedoc:`^0.28.18`,typescript:`^6.0.0`,"typescript-eslint":`^8.58.0`}},su=t({BigIntStatsFs:()=>Fn,Dir:()=>vi,Dirent:()=>gi,IOC:()=>nu,IOC32:()=>ru,ReadStream:()=>lo,Stats:()=>jn,StatsFs:()=>Pn,Utf8Stream:()=>kl,WriteStream:()=>uo,_version:()=>cu,access:()=>tl,accessSync:()=>ta,appendFile:()=>jc,appendFileSync:()=>ji,chmod:()=>Xc,chmodSync:()=>Xi,chown:()=>Jc,chownSync:()=>Ji,chroot:()=>ri,close:()=>Nc,closeSync:()=>Ni,constants:()=>He,copyFile:()=>ul,copyFileSync:()=>aa,cp:()=>ml,cpSync:()=>la,createReadStream:()=>ol,createWriteStream:()=>sl,exists:()=>Cc,existsSync:()=>Si,fchmod:()=>Bc,fchmodSync:()=>Bi,fchown:()=>zc,fchownSync:()=>zi,fdatasync:()=>Ic,fdatasyncSync:()=>Ii,fstat:()=>Mc,fstatSync:()=>Mi,fsync:()=>Fc,fsyncSync:()=>Fi,ftruncate:()=>Pc,ftruncateSync:()=>Pi,futimes:()=>Vc,futimesSync:()=>Vi,glob:()=>_l,globSync:()=>da,ioctl:()=>iu,ioctlSync:()=>au,lchmod:()=>Zc,lchmodSync:()=>Zi,lchown:()=>Yc,lchownSync:()=>Yi,link:()=>Gc,linkSync:()=>Gi,lopenSync:()=>Oi,lstat:()=>Tc,lstatSync:()=>wi,lutimes:()=>$c,lutimesSync:()=>$i,mkdir:()=>Uc,mkdirSync:()=>Ui,mkdtemp:()=>ll,mkdtempDisposableSync:()=>ia,mkdtempSync:()=>ra,mount:()=>ei,open:()=>Oc,openAsBlob:()=>gl,openSync:()=>Di,opendir:()=>pl,opendirSync:()=>ca,promises:()=>fo,read:()=>Rc,readFile:()=>kc,readFileSync:()=>ki,readSync:()=>Ri,readdir:()=>Wc,readdirSync:()=>Wi,readlink:()=>qc,readlinkSync:()=>qi,readv:()=>dl,readvSync:()=>oa,realpath:()=>el,realpathSync:()=>ea,rename:()=>Sc,renameSync:()=>xi,rm:()=>cl,rmSync:()=>na,rmdir:()=>Hc,rmdirSync:()=>Hi,stat:()=>wc,statSync:()=>Ci,statfs:()=>hl,statfsSync:()=>ua,symlink:()=>Kc,symlinkSync:()=>Ki,truncate:()=>Ec,truncateSync:()=>Ti,umount:()=>ti,unlink:()=>Dc,unlinkSync:()=>Ei,unwatchFile:()=>il,utimes:()=>Qc,utimesSync:()=>Qi,watch:()=>al,watchFile:()=>rl,write:()=>Lc,writeFile:()=>Ac,writeFileSync:()=>Ai,writeSync:()=>Li,writev:()=>fl,writevSync:()=>sa,xattr:()=>jl}),cu=ou.version,lu=t({DirType:()=>br,Dirent:()=>Cr,Handle:()=>Vr,IOC:()=>nu,IOC32:()=>ru,chroot:()=>ri,deleteFD:()=>Wr,dtToIf:()=>Sr,fromFD:()=>Ur,ifToDt:()=>xr,ioctl:()=>iu,ioctlSync:()=>au,link:()=>Oa,mkdir:()=>Ta,mount:()=>ei,open:()=>Ca,readdir:()=>Ea,readlink:()=>wa,rename:()=>Da,resolve:()=>Sa,stat:()=>ka,sync:()=>ai,toFD:()=>Hr,umount:()=>ti,xattr:()=>jl}),uu=t({Async:()=>Qs,AsyncMapTransaction:()=>cr,AsyncTransaction:()=>nr,Attributes:()=>zn,BigIntStatsFs:()=>Fn,CopyOnWrite:()=>_s,CopyOnWriteFS:()=>gs,DeviceFS:()=>dr,Dir:()=>vi,Dirent:()=>gi,ErrnoError:()=>Yr,Fetch:()=>Ds,FetchFS:()=>Es,FileSystem:()=>$n,IOC:()=>nu,IOC32:()=>ru,InMemory:()=>ur,InMemoryStore:()=>lr,Index:()=>Zn,IndexFS:()=>ws,Inode:()=>K,InodeFlags:()=>Vn,Journal:()=>hs,MetadataBlock:()=>fc,MutexLock:()=>Kl,Mutexed:()=>Jl,Passthrough:()=>js,PassthroughFS:()=>As,Port:()=>nc,PortFS:()=>$s,RPC:()=>Ms,ReadStream:()=>lo,Readonly:()=>Yl,SingleBuffer:()=>bc,SingleBufferStore:()=>yc,Stats:()=>jn,StatsFs:()=>Pn,StoreFS:()=>or,SuperBlock:()=>hc,Sync:()=>Xl,SyncMapTransaction:()=>sr,SyncTransaction:()=>tr,Transaction:()=>er,Utf8Stream:()=>kl,WrappedTransaction:()=>rr,WriteStream:()=>uo,_MutexedFS:()=>ql,_asyncFSKeys:()=>Zs,_chown:()=>Xn,_fnOpt:()=>ke,_inode_fields:()=>Bn,_inode_version:()=>5,_isNoEntry:()=>ln,_tempDirName:()=>mn,_temporal:()=>hn,_version:()=>cu,access:()=>tl,accessSync:()=>ta,addDevice:()=>os,appendFile:()=>jc,appendFileSync:()=>ji,assertContext:()=>Le,attachFS:()=>ec,bindContext:()=>Ul,boundContexts:()=>Hl,checkOptions:()=>je,chmod:()=>Xc,chmodSync:()=>Xi,chown:()=>Jc,chownSync:()=>Ji,chroot:()=>ri,close:()=>Nc,closeSync:()=>Ni,configure:()=>cs,configureFileSystem:()=>Zo,configureSingle:()=>ns,configureSingleSync:()=>rs,configureSync:()=>ls,constants:()=>He,contextOf:()=>ze,copyFile:()=>ul,copyFileSync:()=>aa,cp:()=>ml,cpSync:()=>la,createChildContext:()=>Ve,createCredentials:()=>Ne,createReadStream:()=>ol,createWriteStream:()=>sl,credentialsAllowRoot:()=>Pe,decodeDirListing:()=>rn,default:()=>du,defaultContext:()=>Re,detachFS:()=>tc,devices:()=>vr,encodeDirListing:()=>an,exists:()=>Cc,existsSync:()=>Si,fchmod:()=>Bc,fchmodSync:()=>Bi,fchown:()=>zc,fchownSync:()=>zi,fdatasync:()=>Ic,fdatasyncSync:()=>Ii,fs:()=>su,fstat:()=>Mc,fstatSync:()=>Mi,fsync:()=>Fc,fsyncSync:()=>Fi,ftruncate:()=>Pc,ftruncateSync:()=>Pi,fullDevice:()=>hr,futimes:()=>Vc,futimesSync:()=>Vi,glob:()=>_l,globSync:()=>da,globToRegex:()=>fn,hasAccess:()=>J,ioctl:()=>iu,ioctlSync:()=>au,isBackend:()=>Oe,isBackendConfig:()=>Me,isBlockDevice:()=>qn,isCharacterDevice:()=>Jn,isContext:()=>Ie,isDirectory:()=>q,isFIFO:()=>Yn,isFile:()=>Wn,isSocket:()=>Kn,isSymbolicLink:()=>Gn,lchmod:()=>Zc,lchmodSync:()=>Zi,lchown:()=>Yc,lchownSync:()=>Yi,link:()=>Gc,linkSync:()=>Gi,log:()=>re,lopenSync:()=>Oi,lstat:()=>Tc,lstatSync:()=>wi,lutimes:()=>$c,lutimesSync:()=>$i,mkdir:()=>Uc,mkdirSync:()=>Ui,mkdtemp:()=>ll,mkdtempDisposableSync:()=>ia,mkdtempSync:()=>ra,mount:()=>ei,mounts:()=>$r,normalizeMode:()=>on,normalizeOptions:()=>dn,normalizePath:()=>H,normalizeTime:()=>un,nullDevice:()=>pr,open:()=>Oc,openAsBlob:()=>gl,openSync:()=>Di,opendir:()=>pl,opendirSync:()=>ca,promises:()=>fo,randomDevice:()=>gr,read:()=>Rc,readFile:()=>kc,readFileSync:()=>ki,readSync:()=>Ri,readdir:()=>Wc,readdirSync:()=>Wi,readlink:()=>qc,readlinkSync:()=>qi,readv:()=>dl,readvSync:()=>oa,realpath:()=>el,realpathSync:()=>ea,rename:()=>Sc,renameSync:()=>xi,resolveMountConfig:()=>es,resolveMountConfigSync:()=>ts,resolveRemoteMount:()=>rc,rm:()=>cl,rmSync:()=>na,rmdir:()=>Hc,rmdirSync:()=>Hi,rootIno:()=>0,stat:()=>wc,statSync:()=>Ci,statfs:()=>hl,statfsSync:()=>ua,symlink:()=>Kc,symlinkSync:()=>Ki,sync:()=>us,truncate:()=>Ec,truncateSync:()=>Ti,umount:()=>ti,unlink:()=>Dc,unlinkSync:()=>Ei,unwatchFile:()=>il,userModifiableFlags:()=>Un,userVisibleFlags:()=>Hn,utimes:()=>Qc,utimesSync:()=>Qi,validateFD:()=>cn,version:()=>1,vfs:()=>lu,waitOnline:()=>pn,watch:()=>al,watchFile:()=>rl,withExceptionContext:()=>Qr,withPath:()=>Xr,wrap:()=>Zr,write:()=>Lc,writeFile:()=>Ac,writeFileSync:()=>Ai,writeSync:()=>Li,writev:()=>fl,writevSync:()=>sa,xattr:()=>jl,zeroDevice:()=>mr}),du=su;globalThis.__zenfs__=Object.create(su);export{R as C,ne as D,P as E,te as O,fe as S,M as T,tt as _,ur as a,ue as b,er as c,Bn as d,wn as f,Qe as g,rt as h,ws as i,y as k,$n as l,U as m,Xl as n,sr as o,W as p,Qs as r,or as s,uu as t,K as u,st as v,k as w,de as x,ot as y};
|
|
12
|
+
`);for(let e of this.items)e.offset&&(t+=`\n\t${sc(e.id)}: ${cc(e.size).padStart(5)} at ${sc(e.offset)}`);return t}#i=(Q(this,b),Q(this,S,void 0));get locked(){return this.#i}set locked(e){this.#i=e}waitUnlocked(e=0){if(e>dc)throw de(P(`EBUSY`,`sbfs: exceeded max attempts waiting for metadata block at ${sc(this.byteOffset)} to be unlocked`));if(Atomics.load(this,w.lockIndex))switch(Atomics.wait(this,w.lockIndex,1)){case`ok`:break;case`not-equal`:return e++,L(`sbfs: waiting for metadata block at ${sc(this.byteOffset)} to be unlocked (${e}/${dc})`),this.waitUnlocked(e);case`timed-out`:throw de(P(`EBUSY`,`sbfs: timed out waiting for metadata block at ${sc(this.byteOffset)} to be unlocked`))}}lock(){this.waitUnlocked(),Atomics.store(this,w.lockIndex,1);let e=()=>{Atomics.store(this,w.lockIndex,0),Atomics.notify(this,w.lockIndex,1)};return e[Symbol.dispose]=e,e}constructor(){super(...arguments),Q(this,C)}static{Q(s,o)}};return w=s})();Object.assign(fc,{lockIndex:Gt(fc,`locked`)/Int32Array.BYTES_PER_ELEMENT});var pc=1651715706,mc=2,hc=(()=>{var e,t,n,r,i,a,o,s,c,l;let u=[Xt.packed()],d,f=[],p,m=$t.typed(BigUint64Array),h,g=[],_=[],v,y=[],b=[],x,S=[],C=[],w,T=[],ee=[],E,te=[],ne=[],D,k=[],A=[],j,M=[],N=[],F,re=[],I=[],ie,ae=[],oe=[],se,ce=[],le=[],ue,fe=[],pe=[],he,ge=[],_e=[],ve,ye=[],be=[];var xe=class extends m{static{p=this}static{let O=typeof Symbol==`function`&&Symbol.metadata?Object.create(m[Symbol.metadata]??null):void 0;h=[(e=V).uint32.bind(e)],v=[(t=V).uint32.bind(t)],x=[(n=V).uint16.bind(n)],w=[(r=V).uint16.bind(r)],E=[(i=V).uint32.bind(i)],D=[(a=V).uint64.bind(a)],j=[(o=V).uint64.bind(o)],F=[V.uint8(16)],ie=[(s=V).uint32.bind(s)],se=[(c=V).uint32.bind(c)],ue=[(l=V).uint32.bind(l)],he=[V.char(64)],ve=[V.char(132)],ic(this,null,h,{kind:`accessor`,name:`checksum`,static:!1,private:!1,access:{has:e=>`checksum`in e,get:e=>e.checksum,set:(e,t)=>{e.checksum=t}},metadata:O},g,_),ic(this,null,v,{kind:`accessor`,name:`magic`,static:!1,private:!1,access:{has:e=>`magic`in e,get:e=>e.magic,set:(e,t)=>{e.magic=t}},metadata:O},y,b),ic(this,null,x,{kind:`accessor`,name:`version`,static:!1,private:!1,access:{has:e=>`version`in e,get:e=>e.version,set:(e,t)=>{e.version=t}},metadata:O},S,C),ic(this,null,w,{kind:`accessor`,name:`inode_format`,static:!1,private:!1,access:{has:e=>`inode_format`in e,get:e=>e.inode_format,set:(e,t)=>{e.inode_format=t}},metadata:O},T,ee),ic(this,null,E,{kind:`accessor`,name:`flags`,static:!1,private:!1,access:{has:e=>`flags`in e,get:e=>e.flags,set:(e,t)=>{e.flags=t}},metadata:O},te,ne),ic(this,null,D,{kind:`accessor`,name:`used_bytes`,static:!1,private:!1,access:{has:e=>`used_bytes`in e,get:e=>e.used_bytes,set:(e,t)=>{e.used_bytes=t}},metadata:O},k,A),ic(this,null,j,{kind:`accessor`,name:`total_bytes`,static:!1,private:!1,access:{has:e=>`total_bytes`in e,get:e=>e.total_bytes,set:(e,t)=>{e.total_bytes=t}},metadata:O},M,N),ic(this,null,F,{kind:`accessor`,name:`uuid`,static:!1,private:!1,access:{has:e=>`uuid`in e,get:e=>e.uuid,set:(e,t)=>{e.uuid=t}},metadata:O},re,I),ic(this,null,ie,{kind:`accessor`,name:`metadata_block_size`,static:!1,private:!1,access:{has:e=>`metadata_block_size`in e,get:e=>e.metadata_block_size,set:(e,t)=>{e.metadata_block_size=t}},metadata:O},ae,oe),ic(this,null,se,{kind:`accessor`,name:`metadata_offset_`,static:!1,private:!1,access:{has:e=>`metadata_offset_`in e,get:e=>e.metadata_offset_,set:(e,t)=>{e.metadata_offset_=t}},metadata:O},ce,le),ic(this,null,ue,{kind:`accessor`,name:`metadata_offset`,static:!1,private:!1,access:{has:e=>`metadata_offset`in e,get:e=>e.metadata_offset,set:(e,t)=>{e.metadata_offset=t}},metadata:O},fe,pe),ic(this,null,he,{kind:`accessor`,name:`label`,static:!1,private:!1,access:{has:e=>`label`in e,get:e=>e.label,set:(e,t)=>{e.label=t}},metadata:O},ge,_e),ic(this,null,ve,{kind:`accessor`,name:`_padding`,static:!1,private:!1,access:{has:e=>`_padding`in e,get:e=>e._padding,set:(e,t)=>{e._padding=t}},metadata:O},ye,be),ic(null,d={value:p},u,{kind:`class`,name:p.name,metadata:O},null,f),xe=p=d.value,O&&Object.defineProperty(p,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:O})}static name=`SuperBlock`;constructor(...e){if(super(...e),Q(this,be),this.magic!=pc){R(`sbfs: Invalid magic value, assuming this is a fresh super block`);let e=new fc(this.buffer,B(xe));Object.assign(this,{metadata:e,metadata_offset:e.byteOffset,used_bytes:BigInt(B(xe)+B(fc)),total_bytes:BigInt(this.buffer.byteLength),magic:pc,version:1,inode_format:5,metadata_block_size:B(fc),uuid:O(crypto.randomUUID())}),vc(this),vc(e);return}if(this.checksum!==_c(this))throw de(P(`EIO`,`sbfs: checksum mismatch for super block`));if(this.metadata=new fc(this.buffer,this.metadata_offset),this.metadata.checksum!==_c(this.metadata))throw de(P(`EIO`,`sbfs: checksum mismatch for metadata block (saved ${sc(this.metadata.checksum)}, computed ${sc(_c(this.metadata))})`));if(this.inode_format!=5)throw de(P(`EIO`,`sbfs: inode format mismatch`));if(this.metadata_block_size!=B(fc))throw de(P(`EIO`,`sbfs: metadata block size mismatch`))}#e=Q(this,g,void 0);get checksum(){return this.#e}set checksum(e){this.#e=e}#t=(Q(this,_),Q(this,y,void 0));get magic(){return this.#t}set magic(e){this.#t=e}#n=(Q(this,b),Q(this,S,void 0));get version(){return this.#n}set version(e){this.#n=e}#r=(Q(this,C),Q(this,T,void 0));get inode_format(){return this.#r}set inode_format(e){this.#r=e}#i=(Q(this,ee),Q(this,te,void 0));get flags(){return this.#i}set flags(e){this.#i=e}#a=(Q(this,ne),Q(this,k,void 0));get used_bytes(){return this.#a}set used_bytes(e){this.#a=e}#o=(Q(this,A),Q(this,M,void 0));get total_bytes(){return this.#o}set total_bytes(e){this.#o=e}#s=(Q(this,N),Q(this,re,void 0));get uuid(){return this.#s}set uuid(e){this.#s=e}#c=(Q(this,I),Q(this,ae,void 0));get metadata_block_size(){return this.#c}set metadata_block_size(e){this.#c=e}#l=(Q(this,oe),Q(this,ce,void 0));get metadata_offset_(){return this.#l}set metadata_offset_(e){this.#l=e}#u=(Q(this,le),Q(this,fe,void 0));get metadata_offset(){return this.#u}set metadata_offset(e){this.#u=e}metadata=Q(this,pe);#d=Q(this,ge,void 0);get label(){return this.#d}set label(e){this.#d=e}#f=(Q(this,_e),Q(this,ye,void 0));get _padding(){return this.#f}set _padding(e){this.#f=e}rotateMetadata(){let e=BigInt(Int32Array.BYTES_PER_ELEMENT),t=BigInt(B(fc)),n=Atomics.load(this,mc),r;for(;;){let i=(e-n%e)%e;r=n+i;let a=r+t;if(a>this.total_bytes)throw L(P(`ENOSPC`,`sbfs: not enough space for a new metadata block`));let o=Atomics.compareExchange(this,mc,n,a);if(o===n)break;n=o}let i=new fc(this.buffer,Number(r)),a=new Uint32Array(this.buffer,this.byteOffset,B(xe)/Uint32Array.BYTES_PER_ELEMENT),o=Atomics.load(a,gc);for(;;){i.previous_offset=o,vc(i);let e=Atomics.compareExchange(a,gc,o,i.byteOffset);if(e===o)break;o=e}return this.metadata=i,vc(this),me(`sbfs: rotated metadata block at ${sc(i.previous_offset)} with new block at ${sc(i.byteOffset)}`),i}isUnused(e,t){if(!t)return!0;if(e+t>this.total_bytes||e<B(xe))return!1;for(let n=this.metadata;n;n=n.previous){if(e<n.byteOffset+B(fc)&&e+t>n.byteOffset)return!1;for(let r of n.items)if(r.offset&&(e>=r.offset&&e<r.offset+r.size||e+t>r.offset&&e+t<=r.offset+r.size||e<=r.offset&&e+t>=r.offset+r.size))return!1}return!0}static{Q(p,f)}};return xe=p})(),gc=Gt(hc,`metadata_offset`)/Uint32Array.BYTES_PER_ELEMENT;function _c(e){let t=B(e)-4;return e instanceof fc&&(t-=Int32Array.BYTES_PER_ELEMENT),l(new Uint8Array(e.buffer,e.byteOffset+4,t))}function vc(e){e instanceof fc&&(e.timestamp=BigInt(Date.now())),e.checksum=_c(e)}var yc=class extends o{flags=[];name=`sbfs`;type=1935828595;get uuid(){return D(this.superblock.uuid)}superblock;_view;_u8;constructor(...e){if(super(...e),this.byteLength<B(hc)+B(fc))throw de(P(`EINVAL`,`sbfs: Buffer is too small for a file system`));this._view=new DataView(this.buffer,this.byteOffset,this.byteLength),this._u8=new Uint8Array(this.buffer,this.byteOffset,this.byteLength),this.superblock=new hc(this.buffer,this.byteOffset)}*keys(){let e=new Set;for(let t=this.superblock.metadata;t;t=t.previous){t.waitUnlocked();for(let n of t.items)!n.offset||e.has(n.id)||(e.add(n.id),yield n.id)}}get(e){for(let t=this.superblock.metadata;t;t=t.previous){t.waitUnlocked();for(let n of t.items){if(!n.offset||n.id!=e)continue;let t=this.byteOffset+n.offset;return new Uint8Array(this.buffer.slice(t,t+n.size))}}}set(e,t){let n={stack:[],error:void 0,hasError:!1};try{if(e===0&&t.length<B(K))throw ue(P(`EIO`,`sbfs: tried to set ${t.length} bytes for id 0!`));for(let n=this.superblock.metadata;n;n=n.previous){n.waitUnlocked();for(let r of n.items){let i={stack:[],error:void 0,hasError:!1};try{if(!r.offset||r.id!=e)continue;if(ac(i,n.lock(),!1),t.length==r.size){this._u8.set(t,r.offset);return}if(t.length<r.size||this.superblock.isUnused(r.offset,t.length)){this._u8.set(t,r.offset),r.size=t.length,vc(n);return}r.offset=Number(Atomics.add(this.superblock,mc,BigInt(t.length))),r.size=t.length,this._u8.set(t,r.offset),vc(n),vc(this.superblock);return}catch(e){i.error=e,i.hasError=!0}finally{oc(i)}}}let r=Array.from(this.superblock.metadata.items).find(e=>!e.offset);r||=(this.superblock.rotateMetadata(),this.superblock.metadata.items[0]),ac(n,this.superblock.metadata.lock(),!1);let i=Number(Atomics.add(this.superblock,mc,BigInt(t.length)));r.id=e,r.offset=i,r.size=t.length,this._u8.set(t,i),vc(this.superblock.metadata),vc(this.superblock)}catch(e){n.error=e,n.hasError=!0}finally{oc(n)}}delete(e){for(let t=this.superblock.metadata;t;t=t.previous){t.waitUnlocked();for(let n of t.items)if(n.id==e){n.offset=0,n.size=0,n.id=0,vc(t);return}}}_fs;get fs(){return this._fs}set fs(e){this.buffer.constructor.name===`SharedArrayBuffer`&&e?.attributes.set(`no_id_tables`,!0),this._fs=e}sync(){return Promise.resolve()}usage(){return{totalSpace:Number(this.superblock.total_bytes),freeSpace:Number(this.superblock.total_bytes-this.superblock.used_bytes)}}transaction(){return new sr(this)}},bc={name:`SingleBuffer`,options:{buffer:{type:`object`,required:!0}},create(e){let t=new or(ArrayBuffer.isView(e.buffer)?new yc(e.buffer.buffer,e.buffer.byteOffset,e.buffer.byteLength):new yc(e.buffer));return t.checkRootSync(),t}},$=()=>{};async function xc(e){let t=[];for await(let n of e)t.push(n);return t}function Sc(e,t,n=$){vo.call(this,e,t).then(()=>n(null)).catch(n)}function Cc(e,t=$){yo.call(this,e).then(t).catch(()=>t(!1))}function wc(e,t,n=$){n=typeof t==`function`?t:n,bo.call(this,e,typeof t==`function`?{}:t).then(e=>n(null,e)).catch(n)}function Tc(e,t,n=$){n=typeof t==`function`?t:n,xo.call(this,e,typeof t==`function`?{}:t).then(e=>n(null,e)).catch(n)}function Ec(e,t=0,n=$){n=typeof t==`function`?t:n;let r=typeof t==`number`?t:0;So.call(this,e,r).then(()=>n(null)).catch(n)}function Dc(e,t=$){Co.call(this,e).then(()=>t(null)).catch(t)}function Oc(e,t,n,r=$){let i=on(n,420);r=typeof n==`function`?n:r,wo.call(this,e,t,i).then(e=>r(null,e.fd)).catch(r)}function kc(e,t,n=$){n=typeof t==`function`?t:n,To.call(this,e,typeof t==`function`?null:t).then(e=>n(null,e)).catch(n)}function Ac(e,t,n,r=$){r=typeof n==`function`?n:r,Eo.call(this,e,t,typeof n==`function`?null:n).then(()=>r(null)).catch(r)}function jc(e,t,n,r=$){let i=typeof n==`function`?void 0:n;r=typeof n==`function`?n:r,Do.call(this,e,t,i).then(()=>r(null)).catch(r)}function Mc(e,t,n=$){n=typeof t==`function`?t:n,new _o(this,e).stat().then(e=>n(null,typeof t==`object`&&t?.bigint?new Mn(e):e)).catch(n)}function Nc(e,t=$){new _o(this,e).close().then(()=>t(null)).catch(t)}function Pc(e,t,n=$){let r=typeof t==`number`?t:0;n=typeof t==`function`?t:n;let i=new _o(this,e);if(r<0)throw P(`EINVAL`);i.truncate(r).then(()=>n(null)).catch(n)}function Fc(e,t=$){new _o(this,e).sync().then(()=>t(null)).catch(t)}function Ic(e,t=$){new _o(this,e).datasync().then(()=>t(null)).catch(t)}function Lc(e,t,n,r,i,a=$){let o,s,c,l,u,d=new _o(this,e),f=[n,r,i].find(e=>typeof e==`function`)??a;typeof t==`string`?(l=typeof n==`number`?n:null,u=typeof r==`string`?r:`utf8`,o=Y.Buffer.from(t,u),s=0,c=o.byteLength):(o=Y.Buffer.from(t.buffer,t.byteOffset,t.byteLength),s=typeof n==`number`?n:0,c=typeof r==`number`?r:o.byteLength-s,l=typeof i==`number`?i:null),d.write(o,s,c,l).then(({bytesWritten:e})=>f(null,e,typeof t==`string`?t:o)).catch(f)}function Rc(e,t,n,r,i,a=$){new _o(this,e).read(t,n,r,i).then(({bytesRead:e,buffer:t})=>a(null,e,t)).catch(a)}function zc(e,t,n,r=$){new _o(this,e).chown(t,n).then(()=>r(null)).catch(r)}function Bc(e,t,n){new _o(this,e).chmod(t).then(()=>n(null)).catch(n)}function Vc(e,t,n,r=$){new _o(this,e).utimes(t,n).then(()=>r(null)).catch(r)}function Hc(e,t=$){Oo.call(this,e).then(()=>t(null)).catch(t)}function Uc(e,t,n=$){ko.call(this,e,t).then(()=>n(null)).catch(n)}function Wc(e,t,n=$){n=typeof t==`function`?t:n;let r=typeof t==`function`?{}:t;Ao.call(this,e,r).then(e=>n(null,e)).catch(n)}function Gc(e,t,n=$){jo.call(this,e,t).then(()=>n(null)).catch(n)}function Kc(e,t,n,r=$){let i=typeof n==`string`?n:`file`;r=typeof n==`function`?n:r,Mo.call(this,e,t,i).then(()=>r(null)).catch(r)}function qc(e,t,n=$){n=typeof t==`function`?t:n,No.call(this,e).then(e=>n(null,e)).catch(n)}function Jc(e,t,n,r=$){Po.call(this,e,t,n).then(()=>r(null)).catch(r)}function Yc(e,t,n,r=$){Fo.call(this,e,t,n).then(()=>r(null)).catch(r)}function Xc(e,t,n=$){Io.call(this,e,t).then(()=>n(null)).catch(n)}function Zc(e,t,n=$){Lo.call(this,e,t).then(()=>n(null)).catch(n)}function Qc(e,t,n,r=$){Ro.call(this,e,t,n).then(()=>r(null)).catch(r)}function $c(e,t,n,r=$){zo.call(this,e,t,n).then(()=>r(null)).catch(r)}function el(e,t,n=$){n=typeof t==`function`?t:n,Bo.call(this,e,typeof t==`function`?null:t).then(e=>n(null,e)).catch(n)}function tl(e,t,n=$){let r=typeof t==`number`?t:4;n=typeof t==`function`?t:n,Ho.call(this,e,r).then(()=>n(null)).catch(n)}var nl=new Map;function rl(e,t,n){let r=H(e),i=typeof t==`function`?{}:t;if(typeof t==`function`&&(n=t),!n)throw N(`EINVAL`,`watch`,e.toString());if(nl.has(r)){let e=nl.get(r);e&&e.listeners.add(n);return}let a=new ha(this,r,i);a.on(`change`,(e,t)=>{let n=nl.get(r);if(n)for(let r of n.listeners)r(e,t)}),nl.set(r,{watcher:a,listeners:new Set([n])})}function il(e,t=$){let n=H(e),r=nl.get(n);r&&(t&&t!==$?r.listeners.delete(t):r.listeners.clear(),r.listeners.size===0&&(r.watcher.stop(),nl.delete(n)))}function al(e,t,n){let r=new ma(this,H(e),typeof t==`object`?t:{});return n=typeof t==`function`?t:n,r.on(`change`,n||$),r}function ol(e,t){t=typeof t==`object`?t:{encoding:t};let n=wo.call(this,e,`r`,t?.mode);return new lo({...t,autoClose:!0},n)}function sl(e,t){t=typeof t==`object`?t:{encoding:t};let n=wo.call(this,e,`w`,t?.mode);return new uo(t,n)}function cl(e,t,n=$){n=typeof t==`function`?t:n,Uo.call(this,e,typeof t==`function`?void 0:t).then(()=>n(null)).catch(n)}function ll(e,t,n=$){n=typeof t==`function`?t:n,Wo.call(this,e,typeof t==`function`?null:t).then(e=>n(null,e)).catch(n)}function ul(e,t,n,r=$){r=typeof n==`function`?n:r,Ko.call(this,e,t,typeof n==`function`?void 0:n).then(()=>r(null)).catch(r)}function dl(e,t,n,r=$){r=typeof n==`function`?n:r,new _o(this,e).readv(t,typeof n==`function`?void 0:n).then(({buffers:e,bytesRead:t})=>r(null,t,e)).catch(r)}function fl(e,t,n,r=$){r=typeof n==`function`?n:r,new _o(this,e).writev(t,typeof n==`function`?void 0:n).then(({buffers:e,bytesWritten:t})=>r(null,t,e)).catch(r)}function pl(e,t,n=$){n=typeof t==`function`?t:n,qo.call(this,e,typeof t==`function`?void 0:t).then(e=>n(null,e)).catch(n)}function ml(e,t,n,r=$){r=typeof n==`function`?n:r,Jo.call(this,e,t,typeof n==`function`?void 0:n).then(()=>r(null)).catch(r)}function hl(e,t,n=$){n=typeof t==`function`?t:n,Yo.call(this,e,typeof t==`function`?void 0:t).then(e=>n(null,e)).catch(n)}async function gl(e,t){let n=await wo.call(this,e.toString(),`r`),r=await n.readFile();return await n.close(),new Blob([r],t)}function _l(e,t,n=$){n=typeof t==`function`?t:n,xc(Xo.call(this,e,typeof t==`function`?void 0:t)).then(e=>n(null,e??[])).catch(e=>n(e))}function vl(e,t){return Object.assign(Error(t),{code:e})}function yl(e,t,n){return vl(`ERR_INVALID_ARG_TYPE`,`The "${e}" argument must be of type ${t}. Received ${typeof n}`)}function bl(e){return vl(`ERR_INVALID_STATE`,`Invalid state: `+e)}function xl(e,t){if(typeof e!=`number`)throw yl(t,`number`,e);if(!Number.isInteger(e)||e<0||e>4294967295)throw vl(`ERR_OUT_OF_RANGE`,`The value of "${t}" is out of range. It must be an integer >= 0 and <= 4294967295. Received ${e}`)}var Sl=16384,Cl=100,wl=Y.Buffer.alloc(0),Tl={open:Oc,openSync:Di,close:Nc,write:Lc,writeSync:Li,fsync:Fc,fsyncSync:Fi,mkdir:Uc,mkdirSync:Ui};function El(e,t,n){if(typeof e==`string`){if(Y.Buffer.byteLength(e)===n)n=e.length;else{let t=Y.Buffer.from(e);for(;n>0&&(t[n]&192)==128;)n--;n=t.subarray(0,n).toString().length}}return{writingBuf:e.slice(n),len:Math.max(t-n,0)}}function Dl(e,t){return e.length?e.length==1?e[0]:Y.Buffer.concat(e,t):wl}var Ol=Symbol(`Utf8StreamFS`),kl=class extends u.default{#e=0;#t=-1;#n=[];#r=[];#i=!1;#a=!1;#o=!1;#s=!1;#c=!1;#l=16387;#u=null;#d=!1;#f=0;#p=0;#m=Sl;#h=!1;#g=0;#_;#v=!1;#y=!1;#b=!0;#x;#S=()=>!0;#C=!1;#w;#T=``;#E;static[Ol]=Tl;static _withContext(e){Le(e);class t extends kl{static[Ol]=_(Tl,e)}return t}constructor(e={}){if(typeof e!=`object`||!e)throw yl(`options`,`object`,e);let{dest:t,minLength:n,maxLength:r,maxWrite:i,periodicFlush:a,sync:o,append:s=!0,mkdir:c,retryEAGAIN:l,fsync:u,contentMode:d=`utf8`,mode:f,fs:p={}}=e;super();let m=e.fd??t;if(typeof p!=`object`||!p)throw yl(`options.fs`,`object`,p);this.#E={...this.constructor[Ol],...p};let h=this.#E;for(let e of[`write`,`writeSync`,`fsync`,`fsyncSync`,`close`,`open`,`mkdir`,`mkdirSync`])if(typeof h[e]!=`function`)throw yl(`options.fs.${e}`,`function`,h[e]);this.#l=Math.max(n||0,this.#l),this.#f=n||0,this.#p=r||0,this.#m=i||Sl,this.#g=a||0,this.#v=o||!1,this.#y=u||!1,this.#b=s||!1,this.#x=f,this.#S=l||(()=>!0),this.#C=c||!1,xl(this.#l,`options.hwm`),xl(this.#f,`options.minLength`),xl(this.#p,`options.maxLength`),xl(this.#m,`options.maxWrite`),xl(this.#g,`options.periodicFlush`);for(let[e,t]of[[`sync`,this.#v],[`fsync`,this.#y],[`append`,this.#b],[`mkdir`,this.#C]])if(typeof t!=`boolean`)throw yl(`options.${e}`,`boolean`,t);if(typeof this.#S!=`function`)throw yl(`options.retryEAGAIN`,`function`,this.#S);if(d!=`buffer`&&d!=`utf8`)throw vl(`ERR_INVALID_ARG_VALUE`,`The property 'options.contentMode' must be one of: 'buffer', 'utf8'. Received ${JSON.stringify(d)}`);if(this.#w=d,this.#T=d==`buffer`?wl:``,typeof m==`number`)this.#t=m,queueMicrotask(()=>this.emit(`ready`));else if(typeof m==`string`)this.#N(m);else throw yl(`fd`,`number or string`,m);if(this.#f>=this.#m)throw vl(`ERR_INVALID_ARG_VALUE`,`The argument 'minLength' should be smaller than maxWrite (${this.#m}). Received ${this.#f}`);this.#g!==0&&(this.#_=setInterval(()=>this.flush(),this.#g),this.#_.unref?.())}write(e){if(this.#d)throw bl(`Utf8Stream is destroyed`);if(this.#w==`buffer`){if(!Y.Buffer.isBuffer(e))throw yl(`data`,`Buffer`,e)}else if(typeof e!=`string`)throw yl(`data`,`string`,e);let t=this.#e+e.length;if(this.#p&&t>this.#p)return this.emit(`drop`,e),this.#e<this.#l;let n=this.#n.length-1;if(this.#w==`buffer`){let t=this.#n;!t.length||this.#r[n]+e.length>this.#m?(t.push([e]),this.#r.push(e.length)):(t[n].push(e),this.#r[n]+=e.length)}else{let t=this.#n;!t.length||t[n].length+e.length>this.#m?t.push(e):t[n]+=e}return this.#e=t,!this.#i&&this.#e>=this.#f&&this.#F(),this.#e<this.#l}flush(e){if(e!=null&&typeof e!=`function`)throw yl(`cb`,`function`,e);if(this.#d){let t=bl(`Utf8Stream is destroyed`);if(!e)throw t;e(t);return}if(this.#f<=0){e?.(null);return}e&&this.#I(e),!this.#i&&(this.#n.length||(this.#n.push(this.#w==`buffer`?[]:``),this.#w==`buffer`&&this.#r.push(0)),this.#F())}flushSync(){if(this.#d)throw bl(`Utf8Stream is destroyed`);if(this.#t<0)throw bl(`Invalid file descriptor`);this.#w==`buffer`?this.#D():this.#O()}#D(){let e=this.#n;!this.#i&&this.#T.length>0&&(e.unshift([this.#T]),this.#T=wl);let t=wl;for(;e.length||t.length;){t.length<=0&&(t=Dl(e[0],this.#r[0]));let n=this.#E.writeSync(this.#t,t);t=t.subarray(n),this.#e=Math.max(this.#e-n,0),t.length<=0&&(e.shift(),this.#r.shift())}}#O(){let e=this.#n;!this.#i&&this.#T.length>0&&(e.unshift(this.#T),this.#T=``);let t=``;for(;e.length||t;){t.length<=0&&(t=e[0]);let n=this.#E.writeSync(this.#t,t,`utf8`),r=El(t,this.#e,n);t=r.writingBuf,this.#e=r.len,t.length<=0&&e.shift()}try{this.#E.fsyncSync(this.#t)}catch{}}reopen(e){if(this.#d)throw bl(`Utf8Stream is destroyed`);if(this.#h){this.once(`ready`,()=>this.reopen(e));return}if(this.#a)return;if(!this.#u)throw vl(`ERR_OPERATION_FAILED`,`Unable to reopen a file descriptor, you must pass a file to Utf8Stream`);if(e&&(this.#u=e.toString()),this.#o=!0,this.#i)return;let t=this.#t;this.once(`ready`,()=>{t!==this.#t&&this.#E.close(t,e=>{e&&this.emit(`error`,e)})}),this.#N(this.#u)}end(){if(this.#d)throw bl(`Utf8Stream is destroyed`);if(this.#h){this.once(`ready`,()=>this.end());return}this.#a||(this.#a=!0,!this.#i&&(this.#e>0&&this.#t>=0?this.#F():this.#P()))}destroy(){this.#d||this.#P()}get mode(){return this.#x}get file(){return this.#u}get fd(){return this.#t}get minLength(){return this.#f}get maxLength(){return this.#p}get writing(){return this.#i}get sync(){return this.#v}get fsync(){return this.#y}get append(){return this.#b}get periodicFlush(){return this.#g}get contentMode(){return this.#w}get mkdir(){return this.#C}[Symbol.dispose](){this.destroy()}#k(){this.listenerCount(`drain`)&&(this.#s=!1,this.emit(`drain`))}#A(e,t=0){if(e){!this.#v&&(e.code===`EAGAIN`||e.code===`EBUSY`)&&this.#S(e,this.#T.length,this.#e-this.#T.length)?setTimeout(()=>this.#j(),Cl):(this.#i=!1,this.emit(`error`,e));return}this.emit(`write`,t);let n=El(this.#T,this.#e,t);if(this.#e=n.len,this.#T=n.writingBuf,this.#T.length){if(!this.#v){this.#j();return}try{do{let e=this.#M(),t=El(this.#T,this.#e,e);this.#e=t.len,this.#T=t.writingBuf}while(this.#T.length)}catch(e){this.#A(e);return}}this.#y&&this.#E.fsyncSync(this.#t);let r=this.#e;this.#o?(this.#i=!1,this.#o=!1,this.reopen()):r>this.#f?this.#F():this.#a?r>0?this.#F():(this.#i=!1,this.#P()):(this.#i=!1,this.#v?this.#s||(this.#s=!0,queueMicrotask(()=>this.#k())):this.emit(`drain`))}#j(){this.#w==`buffer`?this.#E.write(this.#t,this.#T,(e,t)=>this.#A(e,t)):this.#E.write(this.#t,this.#T,`utf8`,(e,t)=>this.#A(e,t))}#M(){return this.#w==`buffer`?this.#E.writeSync(this.#t,this.#T):this.#E.writeSync(this.#t,this.#T,`utf8`)}#N(e){this.#h=!0,this.#i=!0,this.#s=!1;let t=(t,n=-1)=>{if(t){this.#o=!1,this.#i=!1,this.#h=!1,this.#v?queueMicrotask(()=>void(this.listenerCount(`error`)&&this.emit(`error`,t))):this.emit(`error`,t);return}let r=this.#o;this.#t=n,this.#u=e,this.#o=!1,this.#h=!1,this.#i=!1,this.#v?queueMicrotask(()=>this.emit(`ready`)):this.emit(`ready`),!this.#d&&(!this.#i&&this.#e>this.#f||this.#c?this.#F():r&&queueMicrotask(()=>this.emit(`drain`)))},n=this.#b?`a`:`w`,r=this.#x??438;if(this.#v)try{this.#C&&this.#E.mkdirSync(W(e),{recursive:!0}),t(null,this.#E.openSync(e,n,r))}catch(e){throw t(e),e}else this.#C?this.#E.mkdir(W(e),{recursive:!0},i=>{if(i)return t(i);this.#E.open(e,n,r,t)}):this.#E.open(e,n,r,t)}#P(){if(this.#t===-1){this.once(`ready`,()=>this.#P());return}this.#_!==void 0&&clearInterval(this.#_),this.#d=!0,this.#n=[],this.#r=[];let e=e=>{if(e){this.emit(`error`,e);return}this.#a&&!this.#i&&this.emit(`finish`),this.emit(`close`)},t=()=>{this.#t!==1&&this.#t!==2?this.#E.close(this.#t,e):e(null)};try{this.#E.fsync(this.#t,t)}catch{}}#F(){if(this.#i=!0,this.#w==`buffer`?this.#T=this.#T.length?this.#T:Dl(this.#n.shift()??[],this.#r.shift()??0):this.#T||=this.#n.shift()||``,!this.#v){this.#j();return}try{this.#A(null,this.#M())}catch(e){this.#A(e)}}#I(e){this.#c=!0;let t=()=>{if(this.#y||this.#d)this.#c=!1,e(null);else try{this.#E.fsync(this.#t,t=>{this.#c=!1,e(t?.code==`EBADF`?null:t)})}catch(t){this.#c=!1,e(t)}this.off(`error`,n)},n=n=>{this.#c=!1,e(n),this.off(`drain`,t)};this.once(`drain`,t),this.once(`error`,n)}on(e,t,n){return e===`drain`&&(this.#s=!1),super.on(e,t,n)}addListener(e,t,n){return this.on(e,t,n)}once(e,t,n){return e===`drain`&&(this.#s=!1),super.once(e,t,n)}off(e,t,n,r){return super.off(e,t,n,r)}removeListener(e,t,n,r){return super.removeListener(e,t,n,r)}setMaxListeners(){throw N(`ENOSYS`,`Utf8Stream.setMaxListeners`)}getMaxListeners(){throw N(`ENOSYS`,`Utf8Stream.getMaxListeners`)}prependListener(){throw N(`ENOSYS`,`Utf8Stream.prependListener`)}prependOnceListener(){throw N(`ENOSYS`,`Utf8Stream.prependOnceListener`)}rawListeners(){throw N(`ENOSYS`,`Utf8Stream.rawListeners`)}},Al=t({BigIntStatsFs:()=>Fn,Dir:()=>vi,Dirent:()=>gi,ReadStream:()=>lo,Stats:()=>jn,StatsFs:()=>Pn,Utf8Stream:()=>kl,WriteStream:()=>uo,access:()=>tl,accessSync:()=>ta,appendFile:()=>jc,appendFileSync:()=>ji,chmod:()=>Xc,chmodSync:()=>Xi,chown:()=>Jc,chownSync:()=>Ji,close:()=>Nc,closeSync:()=>Ni,constants:()=>He,copyFile:()=>ul,copyFileSync:()=>aa,cp:()=>ml,cpSync:()=>la,createReadStream:()=>ol,createWriteStream:()=>sl,exists:()=>Cc,existsSync:()=>Si,fchmod:()=>Bc,fchmodSync:()=>Bi,fchown:()=>zc,fchownSync:()=>zi,fdatasync:()=>Ic,fdatasyncSync:()=>Ii,fstat:()=>Mc,fstatSync:()=>Mi,fsync:()=>Fc,fsyncSync:()=>Fi,ftruncate:()=>Pc,ftruncateSync:()=>Pi,futimes:()=>Vc,futimesSync:()=>Vi,glob:()=>_l,globSync:()=>da,lchmod:()=>Zc,lchmodSync:()=>Zi,lchown:()=>Yc,lchownSync:()=>Yi,link:()=>Gc,linkSync:()=>Gi,lopenSync:()=>Oi,lstat:()=>Tc,lstatSync:()=>wi,lutimes:()=>$c,lutimesSync:()=>$i,mkdir:()=>Uc,mkdirSync:()=>Ui,mkdtemp:()=>ll,mkdtempDisposableSync:()=>ia,mkdtempSync:()=>ra,open:()=>Oc,openAsBlob:()=>gl,openSync:()=>Di,opendir:()=>pl,opendirSync:()=>ca,promises:()=>fo,read:()=>Rc,readFile:()=>kc,readFileSync:()=>ki,readSync:()=>Ri,readdir:()=>Wc,readdirSync:()=>Wi,readlink:()=>qc,readlinkSync:()=>qi,readv:()=>dl,readvSync:()=>oa,realpath:()=>el,realpathSync:()=>ea,rename:()=>Sc,renameSync:()=>xi,rm:()=>cl,rmSync:()=>na,rmdir:()=>Hc,rmdirSync:()=>Hi,stat:()=>wc,statSync:()=>Ci,statfs:()=>hl,statfsSync:()=>ua,symlink:()=>Kc,symlinkSync:()=>Ki,truncate:()=>Ec,truncateSync:()=>Ti,unlink:()=>Dc,unlinkSync:()=>Ei,unwatchFile:()=>il,utimes:()=>Qc,utimesSync:()=>Qi,watch:()=>al,watchFile:()=>rl,write:()=>Lc,writeFile:()=>Ac,writeFileSync:()=>Ai,writeSync:()=>Li,writev:()=>fl,writevSync:()=>sa}),jl=t({get:()=>Pl,getSync:()=>Fl,list:()=>Bl,listSync:()=>Vl,remove:()=>Rl,removeSync:()=>zl,set:()=>Il,setSync:()=>Ll}),Ml=[];function Nl(e,t,n,r){if(!t.startsWith(`user.`)&&!Ml.includes(t))throw N(`ENOTSUP`,r,n)}async function Pl(e,t,n={}){e=H(e);let{fs:r,path:i}=Z(e,this);Nl(this,t,e,`xattr.get`);let a=await r.stat(i).catch(F(`xattr.get`,e));if(X&&!J(this,a,4))throw N(`EACCES`,`xattr.get`,e);a.attributes??=new zn;let o=a.attributes.get(t);if(!o)throw N(`ENODATA`,`xattr.get`,e);let s=Y.Buffer.from(o);return n.encoding==`buffer`||!n.encoding?s:s.toString(n.encoding)}function Fl(e,t,n={}){e=H(e),Nl(this,t,e,`xattr.get`);let{fs:r,path:i}=Z(e,this),a;try{a=r.statSync(i)}catch(t){throw j(Object.assign(t,{path:e}))}if(X&&!J(this,a,4))throw N(`EACCES`,`xattr.get`,e);a.attributes??=new zn;let o=a.attributes.get(t);if(!o)throw N(`ENODATA`,`xattr.get`,e);let s=Y.Buffer.from(o);return n.encoding==`buffer`||!n.encoding?s:s.toString(n.encoding)}async function Il(e,t,n,r={}){e=H(e);let{fs:i,path:a}=Z(e,this);Nl(this,t,e,`xattr.set`);let o=await i.stat(a).catch(F(`xattr.set`,e));if(X&&!J(this,o,2))throw N(`EACCES`,`xattr.set`,e);o.attributes??=new zn;let s=o.attributes.get(t);if(r.create&&s)throw N(`EEXIST`,`xattr.set`,e);if(r.replace&&!s)throw N(`ENODATA`,`xattr.set`,e);o.attributes.set(t,Y.Buffer.from(n)),await i.touch(a,o).catch(F(`xattr.set`,e))}function Ll(e,t,n,r={}){e=H(e);let{fs:i,path:a}=Z(e,this);Nl(this,t,e,`xattr.set`);let o;try{o=i.statSync(a)}catch(t){throw j(Object.assign(t,{path:e}))}if(X&&!J(this,o,2))throw N(`EACCES`,`xattr.set`,e);o.attributes??=new zn;let s=o.attributes.get(t);if(r.create&&s)throw N(`EEXIST`,`xattr.set`,e);if(r.replace&&!s)throw N(`ENODATA`,`xattr.set`,e);o.attributes.set(t,Y.Buffer.from(n));try{i.touchSync(a,o)}catch(t){throw j(Object.assign(t,{path:e}))}}async function Rl(e,t){e=H(e);let{fs:n,path:r}=Z(e,this);Nl(this,t,e,`xattr.remove`);let i=await n.stat(r).catch(F(`xattr.remove`,e));if(X&&!J(this,i,2))throw N(`EACCES`,`xattr.remove`,e);if(i.attributes??=new zn,!i.attributes.get(t))throw N(`ENODATA`,`xattr.remove`,e);i.attributes.remove(t),await n.touch(r,i)}function zl(e,t){e=H(e);let{fs:n,path:r}=Z(e,this);Nl(this,t,e,`xattr.remove`);let i;try{i=n.statSync(r)}catch(t){throw j(Object.assign(t,{path:e}))}if(X&&!J(this,i,2))throw N(`EACCES`,`xattr.remove`,e);if(i.attributes??=new zn,!i.attributes.get(t))throw N(`ENODATA`,`xattr.remove`,e);i.attributes.remove(t);try{n.touchSync(r,i)}catch(t){throw j(Object.assign(t,{path:e}))}}async function Bl(e){e=H(e);let{fs:t,path:n}=Z(e,this),r=await t.stat(n).catch(F(`xattr.list`,e));return r.attributes?[...r.attributes.keys()]:[]}function Vl(e){e=H(e);let{fs:t,path:n}=Z(e,this),r;try{r=t.statSync(n)}catch(t){throw j(Object.assign(t,{path:e}))}return r.attributes?[...r.attributes.keys()]:[]}var Hl=new Map;function Ul(e={}){let t=ze(this);if(!Ci.call(this,t.root).isDirectory())throw N(`ENOTDIR`,{syscall:`chroot`,path:t.root});let n=Ve(t,e),r=Object.assign(n,{fs:{..._(Al,n),Utf8Stream:kl._withContext(n),promises:_(fo,n),xattr:_(jl,n)},path:_(gn,n),bind:e=>{let t=Ul.call(n,e);return n.children.push(t),t}});return Hl.set(n.id,r),r}var Wl=function(e,t,n){if(t!=null){if(typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Object expected.`);var r,i;if(n){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);r=t[Symbol.dispose],n&&(i=r)}if(typeof r!=`function`)throw TypeError(`Object not disposable.`);i&&(r=function(){try{i.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t},Gl=(function(e){return function(t){function n(n){t.error=t.hasError?new e(n,t.error,`An error was suppressed during disposal.`):n,t.hasError=!0}var r,i=0;function a(){for(;r=t.stack.pop();)try{if(!r.async&&i===1)return i=0,t.stack.push(r),Promise.resolve().then(a);if(r.dispose){var e=r.dispose.call(r.value);if(r.async)return i|=2,Promise.resolve(e).then(a,function(e){return n(e),a()})}else i|=1}catch(e){n(e)}if(i===1)return t.hasError?Promise.reject(t.error):Promise.resolve();if(t.hasError)throw t.error}return a()}})(typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var r=Error(n);return r.name=`SuppressedError`,r.error=e,r.suppressed=t,r}),Kl=class{previous;current=Promise.withResolvers();_isLocked=!0;get isLocked(){return this._isLocked}constructor(e){this.previous=e}async done(){await this.previous?.done(),await this.current.promise}unlock(){this.current.resolve(),this._isLocked=!1}[Symbol.dispose](){this.unlock()}},ql=class{_fs;get type(){return this._fs.type}get name(){return this._fs.name}get label(){return this._fs.label}set label(e){this._fs.label=e}get attributes(){return this._fs.attributes}get _uuid(){return this._fs._uuid}set _uuid(e){this._fs._uuid=e}get uuid(){return this._fs.uuid}async ready(){return await this._fs.ready()}readySync(){return this._fs.readySync()}usage(){return this._fs.usage()}currentLock;addLock(){let e=new Kl(this.currentLock);return this.currentLock=e,e}async lock(e=5e3){let t=this.currentLock,n=this.addLock(),r=Error().stack;return setTimeout(()=>{if(n.isLocked){let e=P(`EDEADLK`);throw e.stack+=r?.slice(5),L(e)}},e),await t?.done(),n}lockSync(){if(this.currentLock?.isLocked)throw L(P(`EBUSY`));return this.addLock()}get isLocked(){return!!this.currentLock?.isLocked}async rename(e,t){let n={stack:[],error:void 0,hasError:!1};try{Wl(n,await this.lock(),!1),await this._fs.rename(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}renameSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.renameSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async stat(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,await this.lock(),!1),await this._fs.stat(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}statSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.statSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async touch(e,t){let n={stack:[],error:void 0,hasError:!1};try{Wl(n,await this.lock(),!1),await this._fs.touch(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}touchSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{Wl(n,this.lockSync(),!1),this._fs.touchSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async createFile(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,await this.lock(),!1),await this._fs.createFile(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}createFileSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.createFileSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async unlink(e){let t={stack:[],error:void 0,hasError:!1};try{Wl(t,await this.lock(),!1),await this._fs.unlink(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}unlinkSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.unlinkSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async rmdir(e){let t={stack:[],error:void 0,hasError:!1};try{Wl(t,await this.lock(),!1),await this._fs.rmdir(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}rmdirSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.rmdirSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async mkdir(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,await this.lock(),!1),await this._fs.mkdir(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}mkdirSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.mkdirSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async readdir(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,await this.lock(),!1),await this._fs.readdir(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}readdirSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.readdirSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async exists(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,await this.lock(),!1),await this._fs.exists(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}existsSync(e){let t={stack:[],error:void 0,hasError:!1};try{return Wl(t,this.lockSync(),!1),this._fs.existsSync(e)}catch(e){t.error=e,t.hasError=!0}finally{Gl(t)}}async link(e,t){let n={stack:[],error:void 0,hasError:!1};try{Wl(n,await this.lock(),!1),await this._fs.link(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}linkSync(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.linkSync(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}async sync(){let e={stack:[],error:void 0,hasError:!1};try{Wl(e,await this.lock(),!1),await this._fs.sync()}catch(t){e.error=t,e.hasError=!0}finally{Gl(e)}}syncSync(){let e={stack:[],error:void 0,hasError:!1};try{return Wl(e,this.lockSync(),!1),this._fs.syncSync()}catch(t){e.error=t,e.hasError=!0}finally{Gl(e)}}async read(e,t,n,r){let i={stack:[],error:void 0,hasError:!1};try{return Wl(i,await this.lock(),!1),await this._fs.read(e,t,n,r)}catch(e){i.error=e,i.hasError=!0}finally{Gl(i)}}readSync(e,t,n,r){let i={stack:[],error:void 0,hasError:!1};try{return Wl(i,this.lockSync(),!1),this._fs.readSync(e,t,n,r)}catch(e){i.error=e,i.hasError=!0}finally{Gl(i)}}async write(e,t,n){let r={stack:[],error:void 0,hasError:!1};try{return Wl(r,await this.lock(),!1),await this._fs.write(e,t,n)}catch(e){r.error=e,r.hasError=!0}finally{Gl(r)}}writeSync(e,t,n){let r={stack:[],error:void 0,hasError:!1};try{return Wl(r,this.lockSync(),!1),this._fs.writeSync(e,t,n)}catch(e){r.error=e,r.hasError=!0}finally{Gl(r)}}streamRead(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.streamRead(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}streamWrite(e,t){let n={stack:[],error:void 0,hasError:!1};try{return Wl(n,this.lockSync(),!1),this._fs.streamWrite(e,t)}catch(e){n.error=e,n.hasError=!0}finally{Gl(n)}}};function Jl(e){class t extends ql{constructor(...t){super(),this._fs=new e(...t)}}return t}function Yl(e){class t extends e{constructor(...e){super(...e),this.attributes.set(`no_write`)}async rename(){throw P(`EROFS`)}renameSync(){throw P(`EROFS`)}async createFile(){throw P(`EROFS`)}createFileSync(){throw P(`EROFS`)}async unlink(){throw P(`EROFS`)}unlinkSync(){throw P(`EROFS`)}async rmdir(){throw P(`EROFS`)}rmdirSync(){throw P(`EROFS`)}async mkdir(){throw P(`EROFS`)}mkdirSync(){throw P(`EROFS`)}async link(){throw P(`EROFS`)}linkSync(){throw P(`EROFS`)}async touch(){throw P(`EROFS`)}touchSync(){throw P(`EROFS`)}async sync(){throw P(`EROFS`)}syncSync(){throw P(`EROFS`)}async write(){throw P(`EROFS`)}writeSync(){throw P(`EROFS`)}streamWrite(){throw P(`EROFS`)}}return t}function Xl(e){class t extends e{async exists(e){return this.existsSync(e)}async rename(e,t){return this.renameSync(e,t)}async stat(e){return this.statSync(e)}async touch(e,t){return this.touchSync(e,t)}async createFile(e,t){return this.createFileSync(e,t)}async unlink(e){return this.unlinkSync(e)}async rmdir(e){return this.rmdirSync(e)}async mkdir(e,t){return this.mkdirSync(e,t)}async readdir(e){return this.readdirSync(e)}async link(e,t){return this.linkSync(e,t)}async sync(){return this.syncSync()}async read(e,t,n,r){return this.readSync(e,t,n,r)}async write(e,t,n){return this.writeSync(e,t,n)}}return t}var Zl=function(e,t,n,r,i,a){function o(e){if(e!==void 0&&typeof e!=`function`)throw TypeError(`Function expected`);return e}for(var s=r.kind,c=s===`getter`?`get`:s===`setter`?`set`:`value`,l=!t&&e?r.static?e:e.prototype:null,u=t||(l?Object.getOwnPropertyDescriptor(l,r.name):{}),d,f=!1,p=n.length-1;p>=0;p--){var m={};for(var h in r)m[h]=h===`access`?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.addInitializer=function(e){if(f)throw TypeError(`Cannot add initializers after decoration has completed`);a.push(o(e||null))};var g=(0,n[p])(s===`accessor`?{get:u.get,set:u.set}:u[c],m);if(s===`accessor`){if(g===void 0)continue;if(typeof g!=`object`||!g)throw TypeError(`Object expected`);(d=o(g.get))&&(u.get=d),(d=o(g.set))&&(u.set=d),(d=o(g.init))&&i.unshift(d)}else(d=o(g))&&(s===`field`?i.unshift(d):u[c]=d)}l&&Object.defineProperty(l,r.name,u),f=!0},Ql=function(e,t,n){for(var r=arguments.length>2,i=0;i<t.length;i++)n=r?t[i].call(e,n):t[i].call(e);return r?n:void 0},$l;(function(e){e[e.RealTime=1]=`RealTime`,e[e.PreAlloc=2]=`PreAlloc`,e[e.Immutable=8]=`Immutable`,e[e.Append=16]=`Append`,e[e.Sync=32]=`Sync`,e[e.NoAtime=64]=`NoAtime`,e[e.NoDump=128]=`NoDump`,e[e.RtInherit=256]=`RtInherit`,e[e.ProjInherit=512]=`ProjInherit`,e[e.NoSymlinks=1024]=`NoSymlinks`,e[e.ExtSize=2048]=`ExtSize`,e[e.ExtSzInherit=4096]=`ExtSzInherit`,e[e.NoDefrag=8192]=`NoDefrag`,e[e.FileStream=16384]=`FileStream`,e[e.Dax=32768]=`Dax`,e[e.CowExtSize=65536]=`CowExtSize`,e[e.HasAttr=2147483648]=`HasAttr`})($l||={});var eu=(()=>{var e,t,n,r,i;let a=[Xt()],s,c=[],l,u=$t(o),d,f=[],p=[],m,h=[],g=[],_,v=[],b=[],x,S=[],C=[],w,T=[],ee=[],E,te=[],ne=[];var D=class extends u{static{l=this}static{let o=typeof Symbol==`function`&&Symbol.metadata?Object.create(u[Symbol.metadata]??null):void 0;d=[(e=V).uint32.bind(e)],m=[(t=V).uint32.bind(t)],_=[(n=V).uint32.bind(n)],x=[(r=V).uint32.bind(r)],w=[(i=V).uint32.bind(i)],E=[V.char(8)],Zl(this,null,d,{kind:`accessor`,name:`xflags`,static:!1,private:!1,access:{has:e=>`xflags`in e,get:e=>e.xflags,set:(e,t)=>{e.xflags=t}},metadata:o},f,p),Zl(this,null,m,{kind:`accessor`,name:`extsize`,static:!1,private:!1,access:{has:e=>`extsize`in e,get:e=>e.extsize,set:(e,t)=>{e.extsize=t}},metadata:o},h,g),Zl(this,null,_,{kind:`accessor`,name:`nextents`,static:!1,private:!1,access:{has:e=>`nextents`in e,get:e=>e.nextents,set:(e,t)=>{e.nextents=t}},metadata:o},v,b),Zl(this,null,x,{kind:`accessor`,name:`projid`,static:!1,private:!1,access:{has:e=>`projid`in e,get:e=>e.projid,set:(e,t)=>{e.projid=t}},metadata:o},S,C),Zl(this,null,w,{kind:`accessor`,name:`cowextsize`,static:!1,private:!1,access:{has:e=>`cowextsize`in e,get:e=>e.cowextsize,set:(e,t)=>{e.cowextsize=t}},metadata:o},T,ee),Zl(this,null,E,{kind:`accessor`,name:`pad`,static:!1,private:!1,access:{has:e=>`pad`in e,get:e=>e.pad,set:(e,t)=>{e.pad=t}},metadata:o},te,ne),Zl(null,s={value:l},a,{kind:`class`,name:l.name,metadata:o},null,c),D=l=s.value,o&&Object.defineProperty(l,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})}static name=`fsxattr`;#e=Ql(this,f,void 0);get xflags(){return this.#e}set xflags(e){this.#e=e}#t=(Ql(this,p),Ql(this,h,void 0));get extsize(){return this.#t}set extsize(e){this.#t=e}#n=(Ql(this,g),Ql(this,v,void 0));get nextents(){return this.#n}set nextents(e){this.#n=e}#r=(Ql(this,b),Ql(this,S,void 0));get projid(){return this.#r}set projid(e){this.#r=e}#i=(Ql(this,C),Ql(this,T,void 0));get cowextsize(){return this.#i}set cowextsize(e){this.#i=e}#a=(Ql(this,ee),Ql(this,te,[]));get pad(){return this.#a}set pad(e){this.#a=e}constructor(e=y(new M(k.EINVAL,`fsxattr must be initialized with an inode`))){super(new ArrayBuffer(B(D))),Ql(this,ne),this.extsize=e.size,this.nextents=1,this.projid=e.uid,this.cowextsize=e.size;for(let t of Object.keys(Vn))e.flags&Vn[t]&&t in $l&&(this.xflags|=$l[t])}static{Ql(l,c)}};return D=l})(),tu;(function(e){e[e.SecureRm=1]=`SecureRm`,e[e.Undelete=2]=`Undelete`,e[e.Compress=4]=`Compress`,e[e.Sync=8]=`Sync`,e[e.Immutable=16]=`Immutable`,e[e.Append=32]=`Append`,e[e.NoDump=64]=`NoDump`,e[e.NoAtime=128]=`NoAtime`,e[e.Dirty=256]=`Dirty`,e[e.CompressBlk=512]=`CompressBlk`,e[e.NoCompress=1024]=`NoCompress`,e[e.Encrypt=2048]=`Encrypt`,e[e.Btree=4096]=`Btree`,e[e.Index=4096]=`Index`,e[e.IMagic=8192]=`IMagic`,e[e.JournalData=16384]=`JournalData`,e[e.NoTail=32768]=`NoTail`,e[e.DirSync=65536]=`DirSync`,e[e.TopDir=131072]=`TopDir`,e[e.HugeFile=262144]=`HugeFile`,e[e.Extent=524288]=`Extent`,e[e.Verity=1048576]=`Verity`,e[e.EaInode=2097152]=`EaInode`,e[e.EofBlocks=4194304]=`EofBlocks`,e[e.NoCow=8388608]=`NoCow`,e[e.Dax=33554432]=`Dax`,e[e.InlineData=268435456]=`InlineData`,e[e.ProjInherit=536870912]=`ProjInherit`,e[e.CaseFold=1073741824]=`CaseFold`,e[e.Reserved=2147483648]=`Reserved`})(tu||={});var nu;(function(e){e[e.GetFlags=2148034049]=`GetFlags`,e[e.SetFlags=1074292226]=`SetFlags`,e[e.GetVersion=2148038145]=`GetVersion`,e[e.SetVersion=1074296322]=`SetVersion`,e[e.Fiemap=3223348747]=`Fiemap`,e[e.GetXattr=2149341215]=`GetXattr`,e[e.SetXattr=1075599392]=`SetXattr`,e[e.GetLabel=2164298801]=`GetLabel`,e[e.SetLabel=1090556978]=`SetLabel`,e[e.GetUUID=2148603136]=`GetUUID`,e[e.GetSysfsPath=2155943169]=`GetSysfsPath`})(nu||={});var ru;(function(e){e[e.GetFlags=2147771905]=`GetFlags`,e[e.SetFlags=1074030082]=`SetFlags`,e[e.GetVersion=2147776001]=`GetVersion`,e[e.SetVersion=1074034178]=`SetVersion`})(ru||={});async function iu(e,t,...n){e=H(e);let{fs:r,path:i}=Z(e,this);try{let e=new K(await r.stat(i));switch(t){case nu.GetFlags:case ru.GetFlags:return e.flags;case nu.SetFlags:case ru.SetFlags:e.flags=n[0],await r.touch(i,e);return;case nu.GetVersion:case ru.GetVersion:return e.version;case nu.SetVersion:case ru.SetVersion:e.version=n[0],await r.touch(i,e);return;case nu.Fiemap:break;case nu.GetXattr:return new eu(e);case nu.SetXattr:break;case nu.GetLabel:return r.label;case nu.SetLabel:r.label=n[0];return;case nu.GetUUID:return r.uuid;case nu.GetSysfsPath:return`/sys/fs/${r.name}/${r.uuid}`}}catch(t){throw j(Object.assign(t,{syscall:`ioctl`,path:e}))}throw N(`ENOTSUP`,`ioctl`,e)}function au(e,t,...n){e=H(e);let{fs:r,path:i}=Z(e,this);try{let e=new K(r.statSync(i));switch(t){case nu.GetFlags:case ru.GetFlags:return e.flags;case nu.SetFlags:case ru.SetFlags:e.flags=n[0],r.touchSync(i,e);return;case nu.GetVersion:case ru.GetVersion:return e.version;case nu.SetVersion:case ru.SetVersion:e.version=n[0],r.touchSync(i,e);return;case nu.Fiemap:break;case nu.GetXattr:return new eu(e);case nu.SetXattr:break;case nu.GetLabel:return r.label;case nu.SetLabel:r.label=n[0];return;case nu.GetUUID:return r.uuid;case nu.GetSysfsPath:return`/sys/fs/${r.name}/${r.uuid}`}}catch(t){throw j(Object.assign(t,{syscall:`ioctl`,path:e}))}throw N(`ENOTSUP`,`ioctl`,e)}var ou={name:`@zenfs/core`,version:`2.6.5`,description:`A filesystem, anywhere`,funding:{type:`individual`,url:`https://github.com/sponsors/james-pre`},main:`dist/index.js`,types:`dist/index.d.ts`,keywords:[`filesystem`,`node`,`storage`,`fs`,`browser`],bin:{"make-index":`scripts/make-index.js`,"zenfs-test":`scripts/test.js`,zci:`scripts/ci-cli.js`},files:[`dist`,`tests`,`types`,`license.md`,`eslint.shared.js`],type:`module`,homepage:`https://zenfs.dev/core`,author:`James Prevett <jp@jamespre.dev> (https://jamespre.dev)`,contributors:[`John Vilk <jvilk@cs.umass.edu>`],license:`LGPL-3.0-or-later`,repository:{type:`git`,url:`git+https://github.com/zen-fs/core.git`},bugs:{url:`https://github.com/zen-fs/core/issues`},engines:{node:`>= 18`},exports:{".":`./dist/index.js`,"./*.js":`./dist/*.js`,"./*":`./dist/*.js`,"./emulation/*":`./dist/node/*`,"./promises":`./dist/node/promises.js`,"./readline":`./dist/node/readline.js`,"./eslint":`./eslint.shared.js`,"./tests/*.ts":`./tests/*.ts`,"./tests/*.js":`./tests/*.js`,"./tests/*":`./tests/*.js`,"./types/*":`./types/*`},publishConfig:{access:`public`,provenance:!0},scripts:{format:`prettier --write .`,"format:check":`prettier --check .`,"spdx:check":`npx lice -a src tests/*.ts tests/**/*.test.ts`,"spdx:fix":`npx lice -aw src tests/*.ts tests/**/*.test.ts`,lint:`eslint src tests`,test:`npx -s zenfs-test --clean; npx -s zenfs-test -abcpn; tests/fetch/run.sh; npx -s zenfs-test --report-only`,"test:native":`npx -s zenfs-test tests/native-setup.ts --verbose`,build:`tsc -p tsconfig.json`,"build:docs":`typedoc`,dev:`tsc -p tsconfig.json --watch`,prepublishOnly:`npm run build`},dependencies:{"@types/node":`^26.0.0`,buffer:`^6.0.3`,eventemitter3:`^5.0.1`,kerium:`^1.4.2`,memium:`^1.0.0`,"readable-stream":`^4.5.2`,utilium:`^3.0.0`},devDependencies:{"@eslint/js":`^10.0.1`,"@octokit/action":`^8.0.4`,c8:`^12.0.0`,eslint:`^10.1.0`,globals:`^17.3.0`,prettier:`^3.2.5`,typedoc:`^0.28.18`,typescript:`^6.0.0`,"typescript-eslint":`^8.58.0`}},su=t({BigIntStatsFs:()=>Fn,Dir:()=>vi,Dirent:()=>gi,IOC:()=>nu,IOC32:()=>ru,ReadStream:()=>lo,Stats:()=>jn,StatsFs:()=>Pn,Utf8Stream:()=>kl,WriteStream:()=>uo,_version:()=>cu,access:()=>tl,accessSync:()=>ta,appendFile:()=>jc,appendFileSync:()=>ji,chmod:()=>Xc,chmodSync:()=>Xi,chown:()=>Jc,chownSync:()=>Ji,chroot:()=>ri,close:()=>Nc,closeSync:()=>Ni,constants:()=>He,copyFile:()=>ul,copyFileSync:()=>aa,cp:()=>ml,cpSync:()=>la,createReadStream:()=>ol,createWriteStream:()=>sl,exists:()=>Cc,existsSync:()=>Si,fchmod:()=>Bc,fchmodSync:()=>Bi,fchown:()=>zc,fchownSync:()=>zi,fdatasync:()=>Ic,fdatasyncSync:()=>Ii,fstat:()=>Mc,fstatSync:()=>Mi,fsync:()=>Fc,fsyncSync:()=>Fi,ftruncate:()=>Pc,ftruncateSync:()=>Pi,futimes:()=>Vc,futimesSync:()=>Vi,glob:()=>_l,globSync:()=>da,ioctl:()=>iu,ioctlSync:()=>au,lchmod:()=>Zc,lchmodSync:()=>Zi,lchown:()=>Yc,lchownSync:()=>Yi,link:()=>Gc,linkSync:()=>Gi,lopenSync:()=>Oi,lstat:()=>Tc,lstatSync:()=>wi,lutimes:()=>$c,lutimesSync:()=>$i,mkdir:()=>Uc,mkdirSync:()=>Ui,mkdtemp:()=>ll,mkdtempDisposableSync:()=>ia,mkdtempSync:()=>ra,mount:()=>ei,open:()=>Oc,openAsBlob:()=>gl,openSync:()=>Di,opendir:()=>pl,opendirSync:()=>ca,promises:()=>fo,read:()=>Rc,readFile:()=>kc,readFileSync:()=>ki,readSync:()=>Ri,readdir:()=>Wc,readdirSync:()=>Wi,readlink:()=>qc,readlinkSync:()=>qi,readv:()=>dl,readvSync:()=>oa,realpath:()=>el,realpathSync:()=>ea,rename:()=>Sc,renameSync:()=>xi,rm:()=>cl,rmSync:()=>na,rmdir:()=>Hc,rmdirSync:()=>Hi,stat:()=>wc,statSync:()=>Ci,statfs:()=>hl,statfsSync:()=>ua,symlink:()=>Kc,symlinkSync:()=>Ki,truncate:()=>Ec,truncateSync:()=>Ti,umount:()=>ti,unlink:()=>Dc,unlinkSync:()=>Ei,unwatchFile:()=>il,utimes:()=>Qc,utimesSync:()=>Qi,watch:()=>al,watchFile:()=>rl,write:()=>Lc,writeFile:()=>Ac,writeFileSync:()=>Ai,writeSync:()=>Li,writev:()=>fl,writevSync:()=>sa,xattr:()=>jl}),cu=ou.version,lu=t({DirType:()=>br,Dirent:()=>Cr,Handle:()=>Vr,IOC:()=>nu,IOC32:()=>ru,chroot:()=>ri,deleteFD:()=>Wr,dtToIf:()=>Sr,fromFD:()=>Ur,ifToDt:()=>xr,ioctl:()=>iu,ioctlSync:()=>au,link:()=>Oa,mkdir:()=>Ta,mount:()=>ei,open:()=>Ca,readdir:()=>Ea,readlink:()=>wa,rename:()=>Da,resolve:()=>Sa,stat:()=>ka,sync:()=>ai,toFD:()=>Hr,umount:()=>ti,xattr:()=>jl}),uu=t({Async:()=>Qs,AsyncMapTransaction:()=>cr,AsyncTransaction:()=>nr,Attributes:()=>zn,BigIntStatsFs:()=>Fn,CopyOnWrite:()=>_s,CopyOnWriteFS:()=>gs,DeviceFS:()=>dr,Dir:()=>vi,Dirent:()=>gi,ErrnoError:()=>Yr,Fetch:()=>Ds,FetchFS:()=>Es,FileSystem:()=>$n,IOC:()=>nu,IOC32:()=>ru,InMemory:()=>ur,InMemoryStore:()=>lr,Index:()=>Zn,IndexFS:()=>ws,Inode:()=>K,InodeFlags:()=>Vn,Journal:()=>hs,MetadataBlock:()=>fc,MutexLock:()=>Kl,Mutexed:()=>Jl,Passthrough:()=>js,PassthroughFS:()=>As,Port:()=>nc,PortFS:()=>$s,RPC:()=>Ms,ReadStream:()=>lo,Readonly:()=>Yl,SingleBuffer:()=>bc,SingleBufferStore:()=>yc,Stats:()=>jn,StatsFs:()=>Pn,StoreFS:()=>or,SuperBlock:()=>hc,Sync:()=>Xl,SyncMapTransaction:()=>sr,SyncTransaction:()=>tr,Transaction:()=>er,Utf8Stream:()=>kl,WrappedTransaction:()=>rr,WriteStream:()=>uo,_MutexedFS:()=>ql,_asyncFSKeys:()=>Zs,_chown:()=>Xn,_fnOpt:()=>ke,_inode_fields:()=>Bn,_inode_version:()=>5,_isNoEntry:()=>ln,_tempDirName:()=>mn,_temporal:()=>hn,_version:()=>cu,access:()=>tl,accessSync:()=>ta,addDevice:()=>os,appendFile:()=>jc,appendFileSync:()=>ji,assertContext:()=>Le,attachFS:()=>ec,bindContext:()=>Ul,boundContexts:()=>Hl,checkOptions:()=>je,chmod:()=>Xc,chmodSync:()=>Xi,chown:()=>Jc,chownSync:()=>Ji,chroot:()=>ri,close:()=>Nc,closeSync:()=>Ni,configure:()=>cs,configureFileSystem:()=>Zo,configureSingle:()=>ns,configureSingleSync:()=>rs,configureSync:()=>ls,constants:()=>He,contextOf:()=>ze,copyFile:()=>ul,copyFileSync:()=>aa,cp:()=>ml,cpSync:()=>la,createChildContext:()=>Ve,createCredentials:()=>Ne,createReadStream:()=>ol,createWriteStream:()=>sl,credentialsAllowRoot:()=>Pe,decodeDirListing:()=>rn,default:()=>du,defaultContext:()=>Re,detachFS:()=>tc,devices:()=>vr,encodeDirListing:()=>an,exists:()=>Cc,existsSync:()=>Si,fchmod:()=>Bc,fchmodSync:()=>Bi,fchown:()=>zc,fchownSync:()=>zi,fdatasync:()=>Ic,fdatasyncSync:()=>Ii,fs:()=>su,fstat:()=>Mc,fstatSync:()=>Mi,fsync:()=>Fc,fsyncSync:()=>Fi,ftruncate:()=>Pc,ftruncateSync:()=>Pi,fullDevice:()=>hr,futimes:()=>Vc,futimesSync:()=>Vi,glob:()=>_l,globSync:()=>da,globToRegex:()=>fn,hasAccess:()=>J,ioctl:()=>iu,ioctlSync:()=>au,isBackend:()=>Oe,isBackendConfig:()=>Me,isBlockDevice:()=>qn,isCharacterDevice:()=>Jn,isContext:()=>Ie,isDirectory:()=>q,isFIFO:()=>Yn,isFile:()=>Wn,isSocket:()=>Kn,isSymbolicLink:()=>Gn,lchmod:()=>Zc,lchmodSync:()=>Zi,lchown:()=>Yc,lchownSync:()=>Yi,link:()=>Gc,linkSync:()=>Gi,log:()=>re,lopenSync:()=>Oi,lstat:()=>Tc,lstatSync:()=>wi,lutimes:()=>$c,lutimesSync:()=>$i,mkdir:()=>Uc,mkdirSync:()=>Ui,mkdtemp:()=>ll,mkdtempDisposableSync:()=>ia,mkdtempSync:()=>ra,mount:()=>ei,mounts:()=>$r,normalizeMode:()=>on,normalizeOptions:()=>dn,normalizePath:()=>H,normalizeTime:()=>un,nullDevice:()=>pr,open:()=>Oc,openAsBlob:()=>gl,openSync:()=>Di,opendir:()=>pl,opendirSync:()=>ca,promises:()=>fo,randomDevice:()=>gr,read:()=>Rc,readFile:()=>kc,readFileSync:()=>ki,readSync:()=>Ri,readdir:()=>Wc,readdirSync:()=>Wi,readlink:()=>qc,readlinkSync:()=>qi,readv:()=>dl,readvSync:()=>oa,realpath:()=>el,realpathSync:()=>ea,rename:()=>Sc,renameSync:()=>xi,resolveMountConfig:()=>es,resolveMountConfigSync:()=>ts,resolveRemoteMount:()=>rc,rm:()=>cl,rmSync:()=>na,rmdir:()=>Hc,rmdirSync:()=>Hi,rootIno:()=>0,stat:()=>wc,statSync:()=>Ci,statfs:()=>hl,statfsSync:()=>ua,symlink:()=>Kc,symlinkSync:()=>Ki,sync:()=>us,truncate:()=>Ec,truncateSync:()=>Ti,umount:()=>ti,unlink:()=>Dc,unlinkSync:()=>Ei,unwatchFile:()=>il,userModifiableFlags:()=>Un,userVisibleFlags:()=>Hn,utimes:()=>Qc,utimesSync:()=>Qi,validateFD:()=>cn,version:()=>1,vfs:()=>lu,waitOnline:()=>pn,watch:()=>al,watchFile:()=>rl,withExceptionContext:()=>Qr,withPath:()=>Xr,wrap:()=>Zr,write:()=>Lc,writeFile:()=>Ac,writeFileSync:()=>Ai,writeSync:()=>Li,writev:()=>fl,writevSync:()=>sa,xattr:()=>jl,zeroDevice:()=>mr}),du=su;globalThis.__zenfs__=Object.create(su);export{y as A,fe as C,P as D,M as E,ne as O,de as S,k as T,Qe as _,ur as a,ot as b,er as c,Bn as d,Wn as f,rt as g,U as h,ws as i,te as k,$n as l,W as m,Xl as n,sr as o,wn as p,Qs as r,or as s,uu as t,K as u,tt as v,R as w,ue as x,st as y};
|
|
@@ -15,4 +15,4 @@ import{i as e,n as t,t as n}from"./rolldown-runtime-Dd_uD5pT.js";import{n as r,t
|
|
|
15
15
|
* Copyright © James Prevett and other ZenFS contributors.
|
|
16
16
|
* SPDX-License-Identifier: LGPL-3.0-or-later
|
|
17
17
|
*/
|
|
18
|
-
;globalThis.__zenfs__=Object.create(eu);export{
|
|
18
|
+
;globalThis.__zenfs__=Object.create(eu);export{y as A,ue as C,P as D,M as E,ne as O,le as S,k as T,Ze as _,sr as a,at as b,Zn as c,zn as d,Vn as f,nt as g,W as h,Ss as i,te as k,Xn as l,G as m,Ul as n,ir as o,Cn as p,Ys as r,rr as s,ru as t,q as u,et as v,B as w,ce as x,ot as y};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,O as i,S as a,T as o,_ as s,a as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,u as C,v as w,w as T,x as E}from"./dist-BKQr3WRb.js";function D(e){switch(e.name){case`TypeMismatchError`:return`EPERM`;case`IndexSizeError`:case`HierarchyRequestError`:case`InvalidCharacterError`:case`InvalidStateError`:case`SyntaxError`:case`NamespaceError`:case`ConstraintError`:case`VersionError`:case`URLMismatchError`:case`InvalidNodeTypeError`:return`EINVAL`;case`WrongDocumentError`:return`EXDEV`;case`NoModificationAllowedError`:case`InvalidModificationError`:case`InvalidAccessError`:case`SecurityError`:case`NotAllowedError`:return`EACCES`;case`NotFoundError`:return`ENOENT`;case`NotSupportedError`:return`ENOTSUP`;case`InUseAttributeError`:return`EBUSY`;case`NetworkError`:return`ENETDOWN`;case`AbortError`:return`EINTR`;case`QuotaExceededError`:return`ENOSPC`;case`TimeoutError`:return`ETIMEDOUT`;case`ReadOnlyError`:return`EROFS`;default:return`EIO`}}function O(e,t){if(e instanceof r)return e;let n=e instanceof DOMException?o[D(e)]:o.EIO,i=new r(n,e.message);return i.stack=e.stack,Error.captureStackTrace?.(i,O),i.cause=e.cause,i}function k(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function A(e){return e instanceof ArrayBuffer?e.resizable:k(e)?e.growable:!1}function j(e,t){return e.kind==t}var M=class extends x(m){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=p(e,n);this._handles.set(t,r),j(r,`directory`)&&await this._loadHandles(t,r)}}async _loadMetadata(e){if(this._handles.set(`/`,this.root),await this._loadHandles(`/`,this.root),e){let t=await(await(await this.get(`file`,e)).getFile()).text(),n=JSON.parse(t);this.index.fromJSON(n);return}let t=1;for(let[e,r]of this._handles){if(j(r,`file`)){let{lastModified:n,size:i}=await r.getFile();this.index.set(e,new C({ino:t,data:t+1,nlink:1,mode:420|w,size:i,mtimeMs:n})),t+=2;continue}if(!j(r,`directory`))throw n(`EIO`,`Invalid handle`);this.index.set(e,new C({ino:t,data:t+1,nlink:1,mode:511|f,size:0})),t+=2}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=c.create({label:`accessfs-cache`}),this.attributes.set(`no_buffer_resize`,!0),t&&this.attributes.set(`no_handle_cache`,!0)}async stat(e){try{return await super.stat(e)}catch(t){if(t.code!=`ENOENT`)throw t;let n=await this.get(null,e),r=this.index._alloc(),i=new C({ino:r,data:r+1,nlink:1});if(j(n,`file`)){let e=await n.getFile();i.update({mode:420|w,size:e.size,mtimeMs:e.lastModified})}else i.update({mode:f|511,size:0});return this.index.set(e,i),i}}async touch(e,t){let r=this.index.get(e);if(!r)throw n(`ENOENT`);if(typeof t.size!=`number`||!d(r))return await super.touch(e,t);let i=await this.get(`file`,e).catch(e=>{if(e.code!=`ENOENT`)throw e});if(!i)return await super.touch(e,t);let{size:a}=await i.getFile();if(a==t.size)return await super.touch(e,t);let o=await i.createWritable({keepExistingData:!!t.size});try{await o.truncate(t.size)}catch{await o.write({type:`truncate`,size:t.size})}await o.close(),await super.touch(e,t)}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async createFile(t,n){let r=await super.createFile(t,n);try{let e=await(await this.get(`directory`,_(t))).getFileHandle(b(t),{create:!0});this.disableHandleCache||this._handles.set(t,e)}catch(n){this.index.delete(t),this._handles.delete(t),e(O(n,t))}return r}async remove(t){let n=await this.get(`directory`,_(t));for(let e of this._handles.keys())_(e)==t&&this._handles.delete(e);this._handles.delete(t),await n.removeEntry(b(t),{recursive:!0}).catch(n=>{let r=O(n,t);r.code!=`ENOENT`&&e(r)})}removeSync(){throw a(n(`ENOSYS`))}async read(e,t,r,i){if(i<=r)return;let a=await(await(await this.get(`file`,e)).getFile()).arrayBuffer();if(a.byteLength<i-r)throw E(n(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${i-r} bytes but the file is ${a.byteLength} bytes.`,`path: ${e}`].join(`
|
|
2
|
+
`+` `.repeat(24))));t.set(new Uint8Array(a,r,i-r))}async write(t,r,i){if(A(r.buffer)||k(r.buffer)){let e=new Uint8Array(new ArrayBuffer(r.byteLength),r.byteOffset,r.byteLength);e.set(r),r=e}let o=this.index.get(t);if(!o)throw n(`ENOENT`);let c=(o.mode&s)==f,l;try{l=await this.get(c?`directory`:`file`,t)}catch{l=await(await this.get(`directory`,_(t)))[c?`getDirectoryHandle`:`getFileHandle`](b(t),{create:!0}).catch(n=>e(O(n,t))),this.disableHandleCache||this._handles.set(t,l)}if(c)return;if(j(l,`directory`)){a(n(`EIO`,`Mismatch in entry kind on write`));return}let u=await l.createWritable({keepExistingData:!0});if(i)try{await u.seek(i)}catch{await u.write({type:`seek`,position:i})}await u.write(r),await u.close();let{size:d,lastModified:p}=await l.getFile();o.update({size:d,mtimeMs:p}),this.index.set(t,o)}async writeFile(e,t){return this.write(e,t,0)}async _mkdir(t){let n=await(await this.get(`directory`,_(t))).getDirectoryHandle(b(t),{create:!0}).catch(n=>e(O(n,t)));this.disableHandleCache||this._handles.set(t,n)}async get(t=null,r){let i=this._handles.get(r);if(!this.disableHandleCache&&i){if(t&&!j(i,t))throw n(t==`directory`?`ENOTDIR`:`EISDIR`);return i}if(r==`/`)return this.root;let a=r.slice(1).split(`/`),o=this.root;for(let t=0;t<a.length-1;++t)o=await o.getDirectoryHandle(a[t]).catch(t=>e(t.name==`TypeMismatchError`?n(`ENOTDIR`):O(t,r)));try{let e=await o[t==`file`?`getFileHandle`:`getDirectoryHandle`](a.at(-1));return this.disableHandleCache||this._handles.set(r,e),e}catch(i){if(i.name!=`TypeMismatchError`)throw O(i,r);if(t===null){let t=await o.getFileHandle(a.at(-1)).catch(t=>e(O(t,r)));return this.disableHandleCache||this._handles.set(r,t),t}throw n(t==`file`?`EISDIR`:`ENOTDIR`)}}},N={name:`WebAccess`,options:{handle:{type:`object`,required:!0},metadata:{type:`string`,required:!1},disableHandleCache:{type:`boolean`,required:!1}},async create(e){let t=new M(e.handle,e.disableHandleCache);return await t._loadMetadata(e.metadata),t}};function P(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=t=>{t.preventDefault(),n(O(e.error))}})}var F=class extends l{async(e){this.asyncDone=this.asyncDone.then(()=>e)}constructor(e,t){super(t),this.tx=e,this.store=t,this.asyncDone=Promise.resolve(),this._idb=e.objectStore(t.name)}async keys(){return(await P(this._idb.getAllKeys())).map(Number)}async get(e){let t=await P(this._idb.get(e));return t&&this.store.cache.set(e,new Uint8Array(t)),t}getSync(e,t,n){if(!this.store.cache.has(e))return;let r=new Uint8Array(this.store.cache.get(e));return n??=r.byteLength,r.subarray(t,n)}async set(e,t){this.store.cache.set(e,new Uint8Array(t)),await P(this._idb.put(t,e))}setSync(e,t){this.async(this.set(e,t))}remove(e){return this.store.cache.delete(e),P(this._idb.delete(e))}removeSync(e){this.store.cache.delete(e),this.async(this.remove(e))}async commit(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.oncomplete=()=>t(),this.tx.onerror=()=>n(O(this.tx.error)),this.tx.commit(),e}async abort(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.onabort=()=>t(),this.tx.onerror=()=>n(O(this.tx.error)),this.tx.abort(),e}};async function I(e,t=globalThis.indexedDB){let n=t.open(e);return n.onupgradeneeded=()=>{let t=n.result;t.objectStoreNames.contains(e)&&(T(`Found unexpected object store: `+e),t.deleteObjectStore(e)),t.createObjectStore(e)},await P(n)}var L=class{constructor(e){this.db=e,this.cache=new Map}sync(){return Promise.resolve()}get name(){return this.db.name}transaction(){return new F(this.db.transaction(this.name,`readwrite`),this)}},R=new WeakMap;async function z(e){if(!(e instanceof IDBFactory))return!1;try{return(await P(e.open(`__zenfs_test`))).close(),!0}catch{return!1}finally{e?.deleteDatabase(`__zenfs_test`)}}var B={name:`IndexedDB`,options:{storeName:{type:`string`,required:!1},idbFactory:{type:`object`,required:!1}},async isAvailable({idbFactory:e=globalThis.indexedDB}){if(R.has(e))return R.get(e);let t=z(e);return R.set(e,t),t},async create(e){let n=new L(await I(e.storeName||`zenfs`,e.idbFactory)),r=new S(n);if(e?.disableAsyncCache)return t(`Async preloading disabled for IndexedDB`),r;let i=n.transaction();for(let e of await i.keys())await i.get(e);return r}},V=class{get name(){return H.name}constructor(e){this.storage=e}clear(){this.storage.clear()}clearSync(){this.storage.clear()}async sync(){}transaction(){return new y(this)}keys(){return Object.keys(this.storage).map(e=>Number(e))}get(e){let t=this.storage.getItem(e.toString());if(typeof t==`string`)return h(t)}set(e,t){try{this.storage.setItem(e.toString(),i(t))}catch{throw n(`ENOSPC`)}}delete(e){try{this.storage.removeItem(e.toString())}catch(t){throw n(`EIO`,`Unable to delete '${e}': ${t}`)}}},H={name:`WebStorage`,options:{storage:{type:`object`,required:!1}},isAvailable(e){return(e?.storage??globalThis.localStorage)instanceof globalThis.Storage},create({storage:e=globalThis.localStorage}){return new S(new V(e))}};function U(e){let t={};for(let n of u){let r=e.getAttribute(n);r!=null&&(t[n]=parseInt(r,16))}return new C(t)}function W(e,t){for(let n of Object.keys(t))!(n in u)||t[n]===void 0||e.setAttribute(n,t[n].toString(16))}function G(e,t=!1){let n;try{let r=t?e.textContent:e.getAttribute(`paths`);n=JSON.parse(r||`[]`)}catch{n=[]}return n}var K=class extends v(g){constructor(e=new DOMParser().parseFromString(`<fs></fs>`,`application/xml`).documentElement){super(544763244,`xmltmpfs`),this.root=e;try{this.mkdirSync(`/`,{uid:0,gid:0,mode:511})}catch(e){let t=e;if(t.code!=`EEXIST`)throw t}}renameSync(e,t){let n=this.get(`rename`,e);this.remove(`rename`,n,e),this.add(`rename`,n,t)}statSync(e){return U(this.get(`stat`,e))}createFileSync(e,t){let n=this.statSync(_(e)),r=new C({mode:t.mode|w,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`createFile`,e,r),r}unlinkSync(e){let t=this.get(`unlink`,e);if(U(t).mode&16384)throw n(`EISDIR`);this.remove(`unlink`,t,e)}rmdirSync(e){let t=this.get(`rmdir`,e);if(t.textContent?.length)throw n(`ENOTEMPTY`);if(!(U(t).mode&16384))throw n(`ENOTDIR`);this.remove(`rmdir`,t,e)}mkdirSync(e,t){let n=this.statSync(_(e)),r=new C({mode:t.mode|f,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`mkdir`,e,r).textContent=`[]`,r}readdirSync(e){let t=this.get(`readdir`,e);if(!(U(t).mode&16384))throw n(`ENOTDIR`);try{return JSON.parse(t.textContent)}catch(e){throw n(`EIO`,`Invalid directory listing: `+e)}}linkSync(e,t){let n=this.get(`link`,e);this.add(`link`,n,t)}touchSync(e,t){W(this.get(`touch`,e),t)}syncSync(){}readSync(e,t,n,r){let i=this.get(`read`,e),a=h(i.textContent.slice(n,r));t.set(a)}writeSync(e,t,n){let r=this.get(`write`,e),a=i(t),o=r.textContent.slice(n+a.length);r.textContent=r.textContent.slice(0,n)+a+o}toString(){return new XMLSerializer().serializeToString(this.root)}get(e,t){let r=this.root.children;if(!r)throw n(`EIO`);for(let e=0;e<r.length;e++)if(G(r[e]).includes(t))return r[e];throw n(`ENOENT`)}create(e,t,r){if(this.existsSync(t))throw n(`EEXIST`);let i=document.createElement(`file`);return this.add(e,i,t),W(i,new C({...r,uid:r.mode})),this.root.append(i),i}add(e,t,n,r=!1){let i=G(t,r);if(i.push(n),r){t.textContent=JSON.stringify(i);return}if(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16)),n!=`/`){let t=this.get(e,_(n));this.add(e,t,b(n),!0)}}remove(e,t,n,r=!1){let i=G(t,r),a=i.indexOf(n);if(a!=-1){if(i.splice(a,1),r){t.textContent=JSON.stringify(i);return}if(i.length?(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16))):t.remove(),n!=`/`){let t=this.get(e,_(n));this.remove(e,t,b(n),!0)}}}},q={name:`XML`,options:{root:{type:`object`,required:!1}},isAvailable(){return!0},create(e){return new K(e.root)}};export{B as IndexedDB,L as IndexedDBStore,F as IndexedDBTransaction,N as WebAccess,M as WebAccessFS,H as WebStorage,V as WebStorageStore,q as XML,K as XMLFS};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,O as i,S as a,T as o,_ as s,a as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,u as C,v as w,w as T,x as E}from"./dist-CBELmDjr.js";function D(e){switch(e.name){case`TypeMismatchError`:return`EPERM`;case`IndexSizeError`:case`HierarchyRequestError`:case`InvalidCharacterError`:case`InvalidStateError`:case`SyntaxError`:case`NamespaceError`:case`ConstraintError`:case`VersionError`:case`URLMismatchError`:case`InvalidNodeTypeError`:return`EINVAL`;case`WrongDocumentError`:return`EXDEV`;case`NoModificationAllowedError`:case`InvalidModificationError`:case`InvalidAccessError`:case`SecurityError`:case`NotAllowedError`:return`EACCES`;case`NotFoundError`:return`ENOENT`;case`NotSupportedError`:return`ENOTSUP`;case`InUseAttributeError`:return`EBUSY`;case`NetworkError`:return`ENETDOWN`;case`AbortError`:return`EINTR`;case`QuotaExceededError`:return`ENOSPC`;case`TimeoutError`:return`ETIMEDOUT`;case`ReadOnlyError`:return`EROFS`;default:return`EIO`}}function O(e,t){if(e instanceof r)return e;let n=e instanceof DOMException?o[D(e)]:o.EIO,i=new r(n,e.message);return i.stack=e.stack,Error.captureStackTrace?.(i,O),i.cause=e.cause,i}function k(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function A(e){return e instanceof ArrayBuffer?e.resizable:k(e)?e.growable:!1}function j(e,t){return e.kind==t}var M=class extends x(m){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=p(e,n);this._handles.set(t,r),j(r,`directory`)&&await this._loadHandles(t,r)}}async _loadMetadata(e){if(this._handles.set(`/`,this.root),await this._loadHandles(`/`,this.root),e){let t=await(await(await this.get(`file`,e)).getFile()).text(),n=JSON.parse(t);this.index.fromJSON(n);return}let t=1;for(let[e,r]of this._handles){if(j(r,`file`)){let{lastModified:n,size:i}=await r.getFile();this.index.set(e,new C({ino:t,data:t+1,nlink:1,mode:420|w,size:i,mtimeMs:n})),t+=2;continue}if(!j(r,`directory`))throw n(`EIO`,`Invalid handle`);this.index.set(e,new C({ino:t,data:t+1,nlink:1,mode:511|f,size:0})),t+=2}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=c.create({label:`accessfs-cache`}),this.attributes.set(`no_buffer_resize`,!0),t&&this.attributes.set(`no_handle_cache`,!0)}async stat(e){try{return await super.stat(e)}catch(t){if(t.code!=`ENOENT`)throw t;let n=await this.get(null,e),r=this.index._alloc(),i=new C({ino:r,data:r+1,nlink:1});if(j(n,`file`)){let e=await n.getFile();i.update({mode:420|w,size:e.size,mtimeMs:e.lastModified})}else i.update({mode:f|511,size:0});return this.index.set(e,i),i}}async touch(e,t){let r=this.index.get(e);if(!r)throw n(`ENOENT`);if(typeof t.size!=`number`||!d(r))return await super.touch(e,t);let i=await this.get(`file`,e).catch(e=>{if(e.code!=`ENOENT`)throw e});if(!i)return await super.touch(e,t);let{size:a}=await i.getFile();if(a==t.size)return await super.touch(e,t);let o=await i.createWritable({keepExistingData:!!t.size});try{await o.truncate(t.size)}catch{await o.write({type:`truncate`,size:t.size})}await o.close(),await super.touch(e,t)}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async createFile(t,n){let r=await super.createFile(t,n);try{let e=await(await this.get(`directory`,_(t))).getFileHandle(b(t),{create:!0});this.disableHandleCache||this._handles.set(t,e)}catch(n){this.index.delete(t),this._handles.delete(t),e(O(n,t))}return r}async remove(t){let n=await this.get(`directory`,_(t));for(let e of this._handles.keys())_(e)==t&&this._handles.delete(e);this._handles.delete(t),await n.removeEntry(b(t),{recursive:!0}).catch(n=>{let r=O(n,t);r.code!=`ENOENT`&&e(r)})}removeSync(){throw a(n(`ENOSYS`))}async read(e,t,r,i){if(i<=r)return;let a=await(await(await this.get(`file`,e)).getFile()).arrayBuffer();if(a.byteLength<i-r)throw E(n(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${i-r} bytes but the file is ${a.byteLength} bytes.`,`path: ${e}`].join(`
|
|
2
|
+
`+` `.repeat(24))));t.set(new Uint8Array(a,r,i-r))}async write(t,r,i){if(A(r.buffer)||k(r.buffer)){let e=new Uint8Array(new ArrayBuffer(r.byteLength),r.byteOffset,r.byteLength);e.set(r),r=e}let o=this.index.get(t);if(!o)throw n(`ENOENT`);let c=(o.mode&s)==f,l;try{l=await this.get(c?`directory`:`file`,t)}catch{l=await(await this.get(`directory`,_(t)))[c?`getDirectoryHandle`:`getFileHandle`](b(t),{create:!0}).catch(n=>e(O(n,t))),this.disableHandleCache||this._handles.set(t,l)}if(c)return;if(j(l,`directory`)){a(n(`EIO`,`Mismatch in entry kind on write`));return}let u=await l.createWritable({keepExistingData:!0});if(i)try{await u.seek(i)}catch{await u.write({type:`seek`,position:i})}await u.write(r),await u.close();let{size:d,lastModified:p}=await l.getFile();o.update({size:d,mtimeMs:p}),this.index.set(t,o)}async writeFile(e,t){return this.write(e,t,0)}async _mkdir(t){let n=await(await this.get(`directory`,_(t))).getDirectoryHandle(b(t),{create:!0}).catch(n=>e(O(n,t)));this.disableHandleCache||this._handles.set(t,n)}async get(t=null,r){let i=this._handles.get(r);if(!this.disableHandleCache&&i){if(t&&!j(i,t))throw n(t==`directory`?`ENOTDIR`:`EISDIR`);return i}if(r==`/`)return this.root;let a=r.slice(1).split(`/`),o=this.root;for(let t=0;t<a.length-1;++t)o=await o.getDirectoryHandle(a[t]).catch(t=>e(t.name==`TypeMismatchError`?n(`ENOTDIR`):O(t,r)));try{let e=await o[t==`file`?`getFileHandle`:`getDirectoryHandle`](a.at(-1));return this.disableHandleCache||this._handles.set(r,e),e}catch(i){if(i.name!=`TypeMismatchError`)throw O(i,r);if(t===null){let t=await o.getFileHandle(a.at(-1)).catch(t=>e(O(t,r)));return this.disableHandleCache||this._handles.set(r,t),t}throw n(t==`file`?`EISDIR`:`ENOTDIR`)}}};const N={name:`WebAccess`,options:{handle:{type:`object`,required:!0},metadata:{type:`string`,required:!1},disableHandleCache:{type:`boolean`,required:!1}},async create(e){let t=new M(e.handle,e.disableHandleCache);return await t._loadMetadata(e.metadata),t}};function P(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=t=>{t.preventDefault(),n(O(e.error))}})}var F=class extends l{async(e){this.asyncDone=this.asyncDone.then(()=>e)}constructor(e,t){super(t),this.tx=e,this.store=t,this.asyncDone=Promise.resolve(),this._idb=e.objectStore(t.name)}async keys(){return(await P(this._idb.getAllKeys())).map(Number)}async get(e){let t=await P(this._idb.get(e));return t&&this.store.cache.set(e,new Uint8Array(t)),t}getSync(e,t,n){if(!this.store.cache.has(e))return;let r=new Uint8Array(this.store.cache.get(e));return n??=r.byteLength,r.subarray(t,n)}async set(e,t){this.store.cache.set(e,new Uint8Array(t)),await P(this._idb.put(t,e))}setSync(e,t){this.async(this.set(e,t))}remove(e){return this.store.cache.delete(e),P(this._idb.delete(e))}removeSync(e){this.store.cache.delete(e),this.async(this.remove(e))}async commit(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.oncomplete=()=>t(),this.tx.onerror=()=>n(O(this.tx.error)),this.tx.commit(),e}async abort(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.onabort=()=>t(),this.tx.onerror=()=>n(O(this.tx.error)),this.tx.abort(),e}};async function I(e,t=globalThis.indexedDB){let n=t.open(e);return n.onupgradeneeded=()=>{let t=n.result;t.objectStoreNames.contains(e)&&(T(`Found unexpected object store: `+e),t.deleteObjectStore(e)),t.createObjectStore(e)},await P(n)}var L=class{constructor(e){this.db=e,this.cache=new Map}sync(){return Promise.resolve()}get name(){return this.db.name}transaction(){return new F(this.db.transaction(this.name,`readwrite`),this)}};const R=new WeakMap;async function z(e){if(!(e instanceof IDBFactory))return!1;try{return(await P(e.open(`__zenfs_test`))).close(),!0}catch{return!1}finally{e?.deleteDatabase(`__zenfs_test`)}}const B={name:`IndexedDB`,options:{storeName:{type:`string`,required:!1},idbFactory:{type:`object`,required:!1}},async isAvailable({idbFactory:e=globalThis.indexedDB}){if(R.has(e))return R.get(e);let t=z(e);return R.set(e,t),t},async create(e){let n=new L(await I(e.storeName||`zenfs`,e.idbFactory)),r=new S(n);if(e?.disableAsyncCache)return t(`Async preloading disabled for IndexedDB`),r;let i=n.transaction();for(let e of await i.keys())await i.get(e);return r}};var V=class{get name(){return H.name}constructor(e){this.storage=e}clear(){this.storage.clear()}clearSync(){this.storage.clear()}async sync(){}transaction(){return new y(this)}keys(){return Object.keys(this.storage).map(e=>Number(e))}get(e){let t=this.storage.getItem(e.toString());if(typeof t==`string`)return h(t)}set(e,t){try{this.storage.setItem(e.toString(),i(t))}catch{throw n(`ENOSPC`)}}delete(e){try{this.storage.removeItem(e.toString())}catch(t){throw n(`EIO`,`Unable to delete '${e}': ${t}`)}}};const H={name:`WebStorage`,options:{storage:{type:`object`,required:!1}},isAvailable(e){return(e?.storage??globalThis.localStorage)instanceof globalThis.Storage},create({storage:e=globalThis.localStorage}){return new S(new V(e))}};function U(e){let t={};for(let n of u){let r=e.getAttribute(n);r!=null&&(t[n]=parseInt(r,16))}return new C(t)}function W(e,t){for(let n of Object.keys(t))!(n in u)||t[n]===void 0||e.setAttribute(n,t[n].toString(16))}function G(e,t=!1){let n;try{let r=t?e.textContent:e.getAttribute(`paths`);n=JSON.parse(r||`[]`)}catch{n=[]}return n}var K=class extends v(g){constructor(e=new DOMParser().parseFromString(`<fs></fs>`,`application/xml`).documentElement){super(544763244,`xmltmpfs`),this.root=e;try{this.mkdirSync(`/`,{uid:0,gid:0,mode:511})}catch(e){let t=e;if(t.code!=`EEXIST`)throw t}}renameSync(e,t){let n=this.get(`rename`,e);this.remove(`rename`,n,e),this.add(`rename`,n,t)}statSync(e){return U(this.get(`stat`,e))}createFileSync(e,t){let n=this.statSync(_(e)),r=new C({mode:t.mode|w,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`createFile`,e,r),r}unlinkSync(e){let t=this.get(`unlink`,e);if(U(t).mode&16384)throw n(`EISDIR`);this.remove(`unlink`,t,e)}rmdirSync(e){let t=this.get(`rmdir`,e);if(t.textContent?.length)throw n(`ENOTEMPTY`);if(!(U(t).mode&16384))throw n(`ENOTDIR`);this.remove(`rmdir`,t,e)}mkdirSync(e,t){let n=this.statSync(_(e)),r=new C({mode:t.mode|f,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`mkdir`,e,r).textContent=`[]`,r}readdirSync(e){let t=this.get(`readdir`,e);if(!(U(t).mode&16384))throw n(`ENOTDIR`);try{return JSON.parse(t.textContent)}catch(e){throw n(`EIO`,`Invalid directory listing: `+e)}}linkSync(e,t){let n=this.get(`link`,e);this.add(`link`,n,t)}touchSync(e,t){W(this.get(`touch`,e),t)}syncSync(){}readSync(e,t,n,r){let i=this.get(`read`,e),a=h(i.textContent.slice(n,r));t.set(a)}writeSync(e,t,n){let r=this.get(`write`,e),a=i(t),o=r.textContent.slice(n+a.length);r.textContent=r.textContent.slice(0,n)+a+o}toString(){return new XMLSerializer().serializeToString(this.root)}get(e,t){let r=this.root.children;if(!r)throw n(`EIO`);for(let e=0;e<r.length;e++)if(G(r[e]).includes(t))return r[e];throw n(`ENOENT`)}create(e,t,r){if(this.existsSync(t))throw n(`EEXIST`);let i=document.createElement(`file`);return this.add(e,i,t),W(i,new C({...r,uid:r.mode})),this.root.append(i),i}add(e,t,n,r=!1){let i=G(t,r);if(i.push(n),r){t.textContent=JSON.stringify(i);return}if(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16)),n!=`/`){let t=this.get(e,_(n));this.add(e,t,b(n),!0)}}remove(e,t,n,r=!1){let i=G(t,r),a=i.indexOf(n);if(a!=-1){if(i.splice(a,1),r){t.textContent=JSON.stringify(i);return}if(i.length?(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16))):t.remove(),n!=`/`){let t=this.get(e,_(n));this.remove(e,t,b(n),!0)}}}};const q={name:`XML`,options:{root:{type:`object`,required:!1}},isAvailable(){return!0},create(e){return new K(e.root)}};export{B as IndexedDB,L as IndexedDBStore,F as IndexedDBTransaction,N as WebAccess,M as WebAccessFS,H as WebStorage,V as WebStorageStore,q as XML,K as XMLFS};
|